Имеется ввиду массив форм?tyomitch писал(а):У формы может быть несколько экземпляров, поэтому нужно указывать, метод какого экземпляра вызывается.
Private Type MyType
x As Long
z As String
u As Boolean
End Type
Sub Main()
Dim foo As MyType
Dim bar As MyType
foo.x = 123
bar.z = 612
End Sub
Private Type MyType
x As Long
z As String
u As Boolean
End Type
Sub Main()
Dim MyType As MyType
MyType.x = 4215454
Module1.Zulu
End Sub
Sub Zulu()
MsgBox "ffoooooooooasdasdasd"
End Sub
Source писал(а):а, понял, что за экземпляры - собственно и есть формы под разным именем. Но модули тоже имеют свои имена, но мы же не пишем NameModule.NameProc!
Dim colForms As New Collection
Sub Main()
Dim newForm1 As Form1
'Создаем 9 экземпляров формы Form1
For i = 1 To 9
Set newForm1 = New Form1
newForm1.Show
colForms.Add newForm1
Next i
'Допустим, в форме Form1 есть процедура Sub01
'Если вызвать просто Sub01 то VB не поймет
'в каком экземпляре формы вызывается Sub01 =>
'надо указать конкретную форму
colForms(1).Sub01
End Sub
'Допустим, в форме Form1 есть процедура Sub01
'Если вызвать просто Sub01 то VB не поймет
'в каком экземпляре формы вызывается Sub01 =>
'надо указать конкретную форму
Почему не поймёт, она же Public, т.е. она должна быть одна для всех модулей проекта!
Т.е. Public в модуле формы не тот Public, что в общем модуле.
Хакер, вот ты интересный, зачем ты проводишь аналогию общей процедуры с переменными?
А общая процедура одна, её код неизменен.
Так почему я не могу к ней обратиться из любого места проги без указания имени модуля?
Я предполагаю, что это м.б. связано с параллельным выполнением кода (потоки и др.), который я ещё не программил, поэтому для каждой формы, не принадлежащей одной коллекции, создаётся свой экземпляр общей процедуры, которая является единственной для форм, принадлежащих одной коллекции.
Ну а как тогда работает код, описанный как Private для нескольких экземпляров форм с одной коллекции?
Public Sub MyProc (frm as Form)
frm.Text1.Text="Ку-ку!"
End Sub
Source писал(а):А теперь такой вопрос:
Создаётся массив форм и эти формы показываются немодально одна за другой. Как будет работать код, написанный в модуле формы-исходника? Предполагаю, что события будут просто ставиться в очередь и при этом есть риск, что общие переменные проекта в этом коде м.б. изменены в "произвольном порядке" в зависимости от порядка попадания событий в очередь, что приведёт к ошибкам в программе...
Напиши простенький пример для проверкиА теперь такой вопрос:
Создаётся массив форм и эти формы показываются немодально одна за другой. Как будет работать код, написанный в модуле формы-исходника?
Хакер писал(а):Это массив ссылок на экземляры формы.
Они вполне могут ссылаться на один и тот же экземляр формы (все 10 ссылок)
Хакер, это ты напутал!
Сейчас этот форум просматривают: Google-бот, Majestic-12 [Bot], Yandex-бот и гости: 32