|
§ 3.2. Что такое модули и зачем они нужны?
Что такое модули? Вообще, существует 3 типа модуля:
-
модуль формы;
-
просто модуль;
-
модуль класса.
С модулем формы обычно знакомятся, делая первые шаги
в программировании на VB. Упрощенно говоря, модуль формы —
это то окно, в котором вы описываете реакцию
формы на действия с ней.
Нас же интересует простой модуль (в дальнейшем —
просто модуль). Такой модуль может содержать только код и добавляется
в проект кнопкой, изображенной на рисунке, или через
меню Project — Add Module.
Так зачем нам модули? Модули нужны в следующих случаях:
-
Если вы хотите объявить глобальную переменную, т.е.
переменную, видимую во всех уголках вашего приложения,
то без модуля не обойтись:
Public MyVar As Integer
Мне кто-то возразит, дескать, а что мешает
то же самое сделать в модуле формы? Никто
не мешает. ;-) Но! Во-первых, при
обращении к вашей переменной придется указывать имя объекта
(в данном случае Form1), а именно так:
Form1.MyVar = 5
Во-вторых, если вы порождаете копии формы:
Dim frmX(1) As Form1
Set frmX(0) = New Form1
Set frmX(1) = New Form1
Load frmX(0)
Load frmX(1)
frmX(0).Visible = True
frmX(1).Visible = True
То каждая копия будет иметь свою переменную:
frmX(0).MyVar и frm(1).MyVar.
Более того, изменение одной переменной никак не скажется на другой.
-
Довольно часто модули формы оказываются перегруженными
кодом и продираться сквозь такие дебри весьма неудобно
и непроизводительно. В этом случае ряд процедур выносить
в модули, оставляя в модулях формы только небольшой код,
жестко привязанный к самой форме (скажем, реакция
на ивенты и т. д.).
-
Декларации функций API или просто внешних функций также
помещают в модули. Конечно, декларацию с префиксом Private
можно включить и в модуль формы, но
Часто АПИшная
функция используется в разных частях приложения. Так зачем же
ее объявлять несколько раз, когда проще объявить 1 раз?
-
И самый убойный аргумент. ;-)
Очень часто большие проекты стартуют не с модуля формы,
а с функции Main. Объявить такую функцию можно
только в модуле. И только в этом случае она будет
нормально работать:
Public Sub Main()
Form1.Show
End Sub
Автор:
Александр Щербаков
|
|