Структура проекта

Проект Delphi представляет собой набор программных единиц - модулей. Один из модулей - главный, содержит операторы, с которых начинается выполнение программы. Главный модуль приложения полностью формируется Delphi.

Главный модуль представляет собой файл с расширением.dpr. Для того чтобы увидеть текст главного модуля приложения, нужно из пункта главного меню Проект (Project) выбрать команду Исходный текст (View Source).

В листинге 1 приведен пример текста главного модуля программы.

Листинг 1. Главный модуль программы.

program Project1;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

Начинается главный модуль с зарезервированного ключевого слова program, за которым следует имя программы, совпадающее с именем проекта (по умолчанию Delphi присваивает проекту имя Project1). Имя проекта задается в момент сохранения проекта, и оно определяет имя создаваемого компилятором исполняемого файла программы. Далее за ключевым словом uses следуют имена используемых модулей: библиотечного модуля Forms и модуля формы Unit1.pas.

Строка {$R *.res} - это директива компилятору подключить файл ресурсов. Файл ресурсов содержит ресурсы приложения: пиктограммы, курсоры, битовые образы и др. Звездочка показывает, что имя файла ресурсов такое же, как и у файла проекта, но с расширением.res.

Исполняемая часть главного модуля находится между ключевыми словами begin и end. Операторы исполняемой части обеспечивают инициализацию приложения и вывод на экран стартового окна.

Помимо главного модуля, каждая программа включает в себя еще как минимум один модуль - модуль формы, который содержит описание стартовой формы приложения и поддерживающих ее работу процедур. В Delphi каждой форме соответствует свой модуль.

Формы - это объекты, в которые вы помещаете другие объекты (компоненты) для создания пользовательского интерфейса вашего приложения. Модули состоят из кода, который реализует функционирование вашего приложения, обработчики событий для форм и их компонент.

Информация о формах хранится в двух типах файлов - .dfm и .pas, причем первый тип файла - двоичный - хранит образ формы и ее свойства, второй тип описывает функционирование обработчиков событий и поведение компонент. Оба файла автоматически синхронизируются Delphi, так что если добавить новую форму в проект, связанный с ним файл типа .pas автоматически будет создан, и его имя будет добавлено в проект.

Такая синхронизация и делает Delphi two-way-инструментом, обеспечивая полное соответствие между кодом и визуальным представлением. Как только добавлен новый объект или код, Delphi устанавливает “кодовую синхронизацию” между визуальными элементами и соответствующими им кодовыми представлениями.

В листинге 2 приведен пример текста модуля формы Unit1.

Листинг 2. Модуль формы программы Unit1.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs;

type

TForm1 = class(TForm)

private

// Раздел объявления элементов класса (полей, методов,

// свойств, событий), видимых только внутри данного модуля //(Private declarations).

public

// Раздел объявлений элементов класса (полей, методов,

// свойств, событий), которые доступны для внешнего

// использования. { Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

end.

Начинается модуль с зарезервированного ключевого слова unit, за которым следует имя модуля (по умолчанию Delphi присваивает модулю имя Unit1). Именно это имя упоминается в списке используемых модулей в инструкции uses главного модуля приложения, текст которого приведен в листинге 1.

Модуль состоит из следующих разделов:

· интерфейса;

· реализации;

· инициализации.

Раздел интерфейса (начинается с ключевого зарезервированного слова interface) сообщает компилятору, какая часть модуля является доступной для других модулей программы. В этом разделе перечислены (после ключевого зарезервированного слова uses) библиотечные модули, используемые данным модулем. Также здесь находится сформированное Delphi описание формы, которое следует за ключевым зарезервированным словом type.

Раздел реализации открывается словом implementation и содержит объявления локальных переменных, процедур и функций, поддерживающих работу формы. Начинается раздел реализации директивой {$R *.dfm}, указывающей компилятору, что в процессе генерации выполняемого файла надо использовать описание формы. Описание формы находится в файле с расширением.dfm, имя которого совпадает с именем модуля. Файл описания формы генерируется средой Delphi на основе внешнего вида формы. За директивой ($R *.dfm} следуют процедуры обработки событий для формы и ее компонентов. Сюда же программист может поместить другие процедуры и функции.

Раздел инициализации (если он есть) позволяет выполнить инициализацию переменных модуля. Инструкции раздела инициализации располагаются после раздела реализации (описания всех процедур и функций) между begin и end. Если раздел инициализации не содержит операторов (как в приведенном примере), то ключевое слово begin не указывается.

Значительное количество операторов модуля формирует Delphi. Например, Delphi, анализируя действия программиста по созданию формы, генерирует описание класса формы (после ключевого слова type). Delphi выполняет значительную часть работы по составлению текста программы.

По умолчанию при запуске приложения Delphi автоматически создает по одному экземпляру каждого класса форм в проекте и освобождает их при завершении программы. Автоматическое создание обрабатывается генерируемым Delphi кодом в трех местах.

Первое - раздел интерфейса в файле модуля формы.

type TForm1 = class (TForm)

private

//Закрытые объявления

public

//Открытые объявления

end;

В данном фрагменте кода объявляется класс TForm1.

Вторым является место, в котором описывается переменная класса.

var Form1: TForm1;

Здесь описана переменная Form1, указывающая на экземпляр класса TForm1 и доступная из любого модуля. Обычно она используется во время работы программы для управления формой.

Третье место находится в исходном тексте главного модуля проекта (Листинг 1). Этот код выглядит как:

Application.CreateForm(TForm1, Form1);

Процесс удаления форм обрабатывается с помощью концепции владельцев объектов: когда объект уничтожается, автоматически уничтожаются все объекты, которыми он владеет. Созданная описанным образом форма принадлежит объекту Application и уничтожается при закрытии приложения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: