FAQ по Visual Basic

Содержание / Начальные сведения о VB Поиск | Далее

§ 3.2. Что такое модули и зачем они нужны?

Что такое модули? Вообще, существует 3 типа модуля:

  • модуль формы;
  • просто модуль;
  • модуль класса.

С модулем формы обычно знакомятся, делая первые шаги в программировании на VB. Упрощенно говоря, модуль формы — это то окно, в котором вы описываете реакцию формы на действия с ней.

Нас же интересует простой модуль (в дальнейшем — просто модуль). Такой модуль может содержать только код и добавляется в проект кнопкой, изображенной на рисунке, или через меню Project — Add Module.

Так зачем нам модули? Модули нужны в следующих случаях:

  1. Если вы хотите объявить глобальную переменную, т.е. переменную, видимую во всех уголках вашего приложения, то без модуля не обойтись:
  2. 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. Более того, изменение одной переменной никак не скажется на другой.

  3. Довольно часто модули формы оказываются перегруженными кодом и продираться сквозь такие дебри весьма неудобно и непроизводительно. В этом случае ряд процедур выносить в модули, оставляя в модулях формы только небольшой код, жестко привязанный к самой форме (скажем, реакция на ивенты и т. д.).
  4. Декларации функций API или просто внешних функций также помещают в модули. Конечно, декларацию с префиксом Private можно включить и в модуль формы, но… Часто АПИшная функция используется в разных частях приложения. Так зачем же ее объявлять несколько раз, когда проще объявить 1 раз?
  5. И самый убойный аргумент. ;-) Очень часто большие проекты стартуют не с модуля формы, а с функции Main. Объявить такую функцию можно только в модуле. И только в этом случае она будет нормально работать:
Public Sub Main()
    Form1.Show
End Sub

Автор:
Александр Щербаков

Предыдущий раздел Следующий раздел

© 2004. При цитировании, пожалуйста, не забудьте поставить ссылку на оригинальную страницу.