Меню Закрыть

Как подключать модули в делфи

Кроме программ, структуру которых мы только что рассмотрели, средства языка позволяют создавать модули. В отличие от программы, модуль не может быть автономно запущен на выполнение и содержит элементы, например, переменные и подпрограммы, которые допускается использовать в программе или в других модулях. Для того чтобы можно было использовать средства модуля, его необходимо подключить, указав имя этого модуля в разделе uses. Типичными примерами модулей являются System и SysUtils, содержащие большое количество стандартных подпрограмм. Напомним, что для каждой формы приложения создается отдельный модуль.

Компилятор распознает модуль по его заголовку и создает в результате своей работы не исполняемый файл (ехе), как это было для приложения, а файл модуля с расширением dcu.

Модуль состоит из заголовка, в котором после ключевого слова unit указывается имя модуля, и четырех разделов: интерфейса (interface), реализации (implementation), инициализации (initialization) И деинициализации (Finalization).

Модуль имеет следующую структуру:

В разделе интерфейса размещаются описания идентификаторов, которые должны быть доступны всем модулям и программам, использующим этот модуль и содержащим его имя в списке uses. В разделе интерфейса объявляются типы, константы, переменные и подпрограммы. При этом для подпрограмм указываются только их заголовки. Другие используемые модули указываются в списке uses. Раздел интерфейса начинается ключевым словом Interface.

В разделе реализации располагается код подпрограмм, заголовки которых были приведены в разделе интерфейса. Порядок следования подпрограмм может не совпадать с порядком расположения их заголовков, приводимых в разделе интерфейса. Кроме того, допускается оставлять в заголовке только имя подпрограммы, т. к. список параметров и тип результата функции уже были предварительно указаны. В разделе реализации можно также описывать типы, объявлять константы и переменные и описывать подпрограммы, которые используются только в этом модуле и за его пределами не видны. Раздел интерфейса начинается словом Implementation.

Читайте также:  Как загрузить видео на ютуб с компьютера

В разделе инициализации располагаются инструкции, выполняемые в начале работы программы, которая подключает данный модуль. Разделы инициализации модулей выполняются в том порядке, в котором они перечислены в списке раздела uses программы. Раздел инициализации начинается словом Initialization и является необязательным.

При наличии раздела инициализации в модуле можно использовать раздел деинициализации, который начинается словом Finalization и является необязательным. В этом разделе располагаются инструкции, выполняемые при завершении программы. Разделы деинициализации модулей выполняются в порядке, обратном порядку их перечисления в списке uses программы.

Модули в Delphi

Разработав некоторую функцию, программист может использовать ее в другой программе, поместив текст этой функции в раздел implementation. Однако этот способ неудобен, т. к. приходится набирать текст функции зановоили копировать его из текста другой программы.

Создание модуля

Delphi позволяет программисту поместить свои функции и процедуры в отдельный модуль, а затем использовать процедуры и функции модуля в своих программах, указав имя модуля в списке модулей, необходимых программе (инструкция uses).

Чтобы приступить к созданию модуля, нужно сначала закрыть окно формы и окно модуля формы (в ответ на вопрос о необходимости сохранения модуля следует выбрать No, т. е. модуль, соответствующий закрытой форме, сохранять не надо). Затем из меню File нужно выбрать команду New | Unit. В результате открывается окно редактора кода, в котором находится сформированный Delphi шаблон модуля. Его текст приведен в листинге 6.7.

Листинг 6.7. Шаблон модуля

Начинается модуль заголовком — инструкцией unit, в которой указано имя модуля. Во время сохранения модуля это имя будет автоматически заменено на имя, указанное программистом.

Слово interface отмечает раздел интерфейса модуля. В этот раздел программист должен поместить объявления находящихся в модуле процедур и функций, которые могут быть вызваны из других модулей, использующих данный.

Читайте также:  Как можно сделать скриншот на компьютере

В раздел implementation (реализация) нужно поместить процедуры и функции, объявленные в разделе interface. В качестве примера в листинге 6.8 приведен модуль программиста, который содержит рассмотренные ранее функции isint и IsFloat.

Для работы компонентов понадобится

Набор библиотек JEDI API распаковываем в папку (путь указываю для примера, каждый может распаковывать туда куда душе будет угодно, главное что-бы путь в Environment Variables был прописан правильно):

Набор моих библиотек распаковываем в папку (про расположение папки см. выше):

    1. Запускаем Delphi

  • $(JEDI)jwaranches2.3Common
  • $(JEDI)jwaranches2.3Includes
  • $(JEDI)jwaranches2.3SaCMAPI
  • $(JEDI)jwaranches2.3Win32API
  • $(KANDIRAL)Release$(ProductVersion)$(Platform)
  • $(KANDIRAL)Resources
  • $(KANDIRAL)Common
  • $(KANDIRAL)Automation
  • $(KANDIRAL)File
  • $(KANDIRAL)Media
  • $(KANDIRAL)Net
  • $(KANDIRAL)Utils
  • $(KANDIRAL)Graphics
  • Kandiral150.groupproj Delphi XE
  • Kandiral160.groupproj Delphi XE2
  • Kandiral170.groupproj Delphi XE3
  • Kandiral180.groupproj Delphi XE4
  • Kandiral190.groupproj Delphi XE5
  • Kandiral200.groupproj Delphi XE6
  • Kandiral210.groupproj Delphi XE7
  • Kandiral220.groupproj Delphi XE8
  • Kandiral230.groupproj Delphi 10 Seattle
  • Kandiral240.groupproj Delphi 10.1 Berlin
  • Kandiral250.groupproj Delphi 10.2 Tokyo
  • Kandiral260.groupproj Delphi 10.3 Rio

Если всё сделано правильно, то в палитре компонентов должны появиться установленные элементы.

При установке путей к библиотекам нужно указать платформу "32-bit Windows"

В некоторых версиях компилятор ругается на файл с картинками

Мне, во всех случаях возникновения этой ошибки, помог перезапуск Delphi.

Если перезапуск Delphi не помогает, то идём следующим путем

Первый способ. Убираем из пакета файл с картинками. На работу библиотек это не повлияет, просто сами компоненты будут без картинок. Для этого в "Project Manager" на названии пакета (например KRCommon160) жмём правой кнопкой мыши и в контекстном меню выбираем "View Source"

и перекомпилируем пакет.

Второй способ. Подключаем картинки старого формата. В каждом пакете есть файл типа "ИмяПакета.dcr", в нем содержатся картинки всех компонентов (которые я уже нарисовал). Но есть и еще dcr файлы, которые сделаны в imageedit от Delphi 7. Второй способ заключается в том, что-бы заменить новый файл с картинками на старые. Для этого в "Project Manager" на названии пакета (например KRCommon160) жмём правой кнопкой мыши и в контекстном меню выбираем "View Source"

Читайте также:  Виртуальная сим карта без регистрации

И вместо файла KRCommon.dcr подключаем все остальные dcr файлы из папки Common

Перекомпилируем пакет. Аналогично проделываем с остальными пакетами где вылетает ошибка.

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.