Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 | 4 |

 

  Вопрос: Доступность процедур и переменных Добавлено: 21.01.06 20:07  

Автор вопроса:  Wolfrt | ICQ: 225421504 

Ответить

  Ответы Всего ответов: 50  

Номер ответа: 31
Автор ответа:
 Wolfrt



ICQ: 225421504 

Вопросов: 8
Ответов: 60
 Профиль | | #31 Добавлено: 23.01.06 20:06
Блин ребят я ламер! написав Option Explicit Off я отключил проверку объявления переменной. Проблема осталась!
в первой форме пишу:

Public Class Form1
    Inherits System.Windows.Forms.Form
    Public a As Double

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        a = 11
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub
End Class

во второй:
не вижу её!

Ответить

Номер ответа: 32
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #32
Добавлено: 23.01.06 20:15
Ты бы сначала написал ЦЕЛЬ которую ты преследуешь, т.е. что ты хочешь
написать, получить в итоге?

Ответить

Номер ответа: 33
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #33
Добавлено: 23.01.06 20:17
Напиши конкретней что хочешь получить и кого еЁ?

Ответить

Номер ответа: 34
Автор ответа:
 Wolfrt



ICQ: 225421504 

Вопросов: 8
Ответов: 60
 Профиль | | #34 Добавлено: 23.01.06 20:41
В обшем первое: один раз посчитать массив и с разых форм к ниму обращаться!
второе один раз написать функцию и с разых форм к ней обращаться, а то приходиться на каждой форме дублировать, т.е. писать одни и теже функции, считать одни и теже массивы. Можно конешно передавать массивы но не интересно и уменьшает быстродействие!

Ответить

Номер ответа: 35
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #35
Добавлено: 23.01.06 20:53
А кто тебе мешает объявить массив как Public в модуле и функцию там же
и пользоваться во всех формах.

Ну конечно!!!:
Можно конешно передавать массивы но не интересно и уменьшает быстродействие!


И кстати, что ты пытался сделать тем кодом который привел? хе-хе

Ответить

Номер ответа: 36
Автор ответа:
 Wolfrt



ICQ: 225421504 

Вопросов: 8
Ответов: 60
 Профиль | | #36 Добавлено: 23.01.06 21:33
Тем кодом хочу показать, как я делаю!
Вот попробуй следующие:
в form1 объяви переменную например "Public Test As Double" и присвой ей значени например 10
открой Form2.ActiveForm.Show()
в form2 выведи переменную "Test" в Label.

Ответить

Номер ответа: 37
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #37
Добавлено: 23.01.06 22:29
Дело в том что Form1 - это объект, соответственно твой массив принадлежит этому объекту. Неважно как он объявлен: Private он или Public, всё равно он останется членом класса Form1. Соответственно обратится к нему всегда можно Объект.Свойство.
 Например:
 Public Array(9) As Long
 MsgBox Form1.Array(0)
Тогда, если массив Array объявлен как Public, то он будет виден из других модулей, если Private - то нет. Это называется инкапсуляция, или свойство объектов скрывать свои члены.

Ответить

Номер ответа: 38
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #38
Добавлено: 23.01.06 22:44
Форма1:

Option Explicit
Private Sub Form_Load()
Test = "10"
Label1.Caption = Test
Form2.Visible = True
End Sub


Форма2:

Option Explicit
Private Sub Form_Load()
Label1.Caption = Test
End Sub


Модуль:

Public Test As Double


Ответить

Номер ответа: 39
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #39
Добавлено: 23.01.06 22:50
Блин че то и я тормозить стал!!!

ВООО:

Option Explicit
Public Test As Double

Public Sub Form_Load()
Test = "10"
Label1.Caption = Test
Form2.Visible = True
Form2.Label2.Caption = Test
End Sub


Ответить

Номер ответа: 40
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #40 Добавлено: 23.01.06 23:36
шо то мне кажеться что автор вопроса путает модуль с формой! Ему 100
раз сказали что объявляй переменные в МОДУЛЕ, пиши функции в МОДУЛЕ, а
он всёравно в ФОРМЕ пишет... Что ж нам в такой ситуации делать? :)

Ответить

Номер ответа: 41
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #41
Добавлено: 24.01.06 00:16
Да нет, он может и к массиву формы обратиться. См. ответ 37.

Ответить

Номер ответа: 42
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #42 Добавлено: 24.01.06 11:21
Option Explicit Off я отключил проверку объявления переменной.

Не вздумай!
писать одни и теже функции, считать одни и теже массивы.

Млин, тебе же сказали - вынеси в модуль!
Либо, как уже говорилось, Объект.Переменная
Если массив используется в нескольких объектах - определенно в модуль.
Тогда, если массив Array объявлен как Public, то он будет виден из других модулей, если Private - то нет.

Порой имеет смысл объявлять как Friend. Тогда будет виден из других модулей проекта, но скрыт для клиента.
К сожалению, в связи с отсутствием наследования в VB6 нету Protected. Хотя автор говорит про .NET.

Ответить

Номер ответа: 43
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #43 Добавлено: 24.01.06 18:34
Option Explicit то автоматом ставиться

Не всегда... Если не поставишь галку в опциях - не будет ставиться.

Ответить

Номер ответа: 44
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #44
Добавлено: 24.01.06 19:09
2Александр: НУ я про тоже и говорю, сразу после установки ты ее
ставишь, почему то мне так кажется ;-)
И уже в последующих запусуках - ставиться автоматом!

Ответить

Номер ответа: 45
Автор ответа:
 Wolfrt



ICQ: 225421504 

Вопросов: 8
Ответов: 60
 Профиль | | #45 Добавлено: 24.01.06 19:30
to HACKER
Спасибо большое!
Что направил на путь истенный!
Раньше не сталкивался с модулем!
Всё что требовалась сказать: добавь module b объявляй переменные там!

Ответить

Страница: 1 | 2 | 3 | 4 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам