12.7.
ТИПЫ МОДУЛЕЙ В DELPHI
Наиболее распространенным типом модуля
в Delphi является форма - модуль со связанным с ним окном. Интерфейсная часть
такого модуля обычно содержит объявление нового класса и автоматически обновляется
Delphi в ходе конструирования окна. В интерфейсной части модуля-формы содержится
также объявление объекта для соответствующего оконного класса. Например, для
нашей учебной программы модуль содержит объявление класса TfmExamie и
объекта fmExampie. Большинство типовых
модулей в репозитории содержат заготовки для создания диалоговых окон.
Помимо форм в репозитории содержатся
также не связанные с видимыми окнами модули. Кроме уже рассмотренного выше модуля
общего назначения, к ним относятся модули данных, модули динамических библиотек,
пакеты и модули потоков.
Модули данных
имеют связанные
с ними окна, однако, эти окна никогда не появляются на экране. Необходимость
в окнах вызвана тем, что компоненты доступа к данным страницы можно вставить
только в форму, хотя все они не имеют видимого воплощения в работающей программе.
Невидимое окно модуля данных предназначено для размещения этих компонентов и
связанных с ними объектов-полей. Разумеется, для размещения компонентов и полей
можно использовать и обычное окно-форму, однако в этом случае пиктограммы компонентов
загромождают видимое пространство окна и затрудняют его конструирование. В Delphi
5, 6 модули данных способны отображать реляционные связи между сущностями базы
данных в виде диаграмм.
Модули динамических библиотек
предназначены для создания широко используемых в Windows динамически связываемых
библиотек DLL (Dynamic-Link Libraries). DLL служат универсальным средством согласования
подпрограмм, написанных на разных языках программирования. В Windows содержится
множество DLL, написанных на языке Си или на языке ассемблера, что ничуть не
мешает Delphi-программам использовать их. Модули динамических библиотек предназначены
для разработки DLL с помощью Object Pascal. Такие DLL затем смогут использовать
программы, созданные с помощью других языков программирования.
Пакеты
- это особым образом
откомпилированные DLL, оптимизированные для совместного использования Delphi-программами,
или средой Delphi, или и программами, и средой. В отличие от DLL пакеты могут
хранить и передавать программе типы (включая классы) и данные. Они разработаны
специально для хранения компонентов, разного рода экспертов, редакторов сложных
свойств и т. п. Например, в пакете VCL60 .bpl содержатся основные компоненты
Delphi.
Модули потоков
предназначены
для реализации так называемых потоков команд[
В Delphi существуют также потоки
данных - см.п. 11.4.
] - фрагментов программы, которые исполняются параллельно
с другими фрагментами, разделяя с ними время процессора и остальные системные
ресурсы. Механизм потоков используется в 32-разрядных Windows и не поддерживается
в Delphi 1. К сожалению, в текущей реализации Delphi 32 потоки не могут связываться
с собственными видимыми компонентами, так как библиотека визуальных компонентов
VCL (Visual Component Library) не поддерживает работу с потоками. Вот почему
модуль потока не имеет связанного с ним окна.