Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2012 02 26 Основы программирования в Delphi.docx
Скачиваний:
4
Добавлен:
16.08.2019
Размер:
204.56 Кб
Скачать

Список uses

Новый термин. В разделе uses перечислены внешние модули, на которые ссылается данный модуль. Иными словами, данный модуль не удастся откомпилировать без использования модулей, которые перечислены в списке uses.

Обратимся к листингу 1.1. Слово uses в строке 3 открывает список модулей, которые необходимы для выполнения прикладной программы. Например, в строке 11 листинга 1.1 написано:

Application.CreateForm(TForm1, Form1);

В этой строке используются идентификаторы, которые в данном модуле не объявлены. Так, описание процедуры Application.CreateForm находится в модуле с именем Forms.pas, а идентификаторы TForm1 и Form1 описаны в модуле формы приложения Unit1.pas. Видите связь? Список uses сообщает Delphi где искать дополнительную информацию, необходимую для компиляции модуля. Рассмотрим список uses подробнее:

uses

Forms,

Unit1 in 'Unit1.pas' {Form1};

В этом списке присутствуют имена двух модулей: Forms и Unit1. В некотором смысле это неудачный пример, поскольку второй модуль описан необычно. Так, его описание содержит дополнительный текст (Unit1 in 'Unit1.pas' {Form1}). Этот текст показывает что модуль содержит описание формы. Такой синтаксис описания применяется только в модуле проекта. Текст в фигурных скобках – это комментарий.

Необходимо запомнить два правила составления списка uses:

Имена модулей в списке разделяются запятыми.

Список заканчивается символом «;».

Способ оформления списка не имеет никакого значения. Например, следующие два списка uses абсолютно верны:

uses

Windows, Messages, SysUtils, Classes, Graphics,

Controls, Forms, Dialogs, StdCtrls;

uses

Windows,

Messages,

SysUtils,

Classes,

Graphics,

Controls,

Forms,

Dialogs,

StdCtrls;

ПРИМЕЧАНИЕ: В некоторых случаях Delphi может добавлять ссылки на модули в список uses. Это делается с помощью команды меню File | Use Unit.

Интерфейс

Раздел интерфейса в модуле начинается с ключевого слова interface.

Этот раздел предназначен для объявления идентификаторов, которые «экспортирует» данный модуль. Экспортируемый идентификатор доступен в любом другом модуле проекта, который ссылается на данный модуль в своем списке uses.

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

Реализациия

Новый термин: Раздел реализации (implementation) модуля содержит детальный код модуля.

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

Рассмотрим пример, иллюстрирующий использование разделов interface и implementation.

Допустим, нам надо создать модуль с процедурой DoSomething. причем эта процедура должна быть доступна всем модулям проекта. В этом случае мы должны описать процедуру DoSomething в разделе interface и затем написать код этой процедуры в разделе implementation. Вцелом модуль будет выглядеть так, как показано на листинге 1.3.

Листинг 1.3. Модуль с экспортируемой процедурой

unit Unit2;

interface

procedure DoSomething;

implementation

procedure DoSomething;

begin

{ Алгоритм процедуры DoSomething. }

end;

end.

Обратите внимание на то, что процедура DoSomething объявлена в разделе интерфейса, а затем определена (т.е. дан ее подробный код) в разделе implementation. Правда, мы несколько опередили события, ибо не объяснили еще ни понятие «процедура», ни понятие «функция». Процедуры и функции мы рассмотрим позже.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]