•  
Создано: 22.08.2010 0:09:40 · Исправлено: 22.08.2010 0:09:40 · Прочтений: 6504

В среде Delphi разрабатывается проект – набор файлов, из которых состоит приложение. Рекомендуется файлы, относящиеся к проекту, хранить в отдельной папке.

В любой проект входит по крайней мере шесть файлов:

  • project1.dpr – главный файл проекта, формируется системой при создании нового приложения;
  • unit1.pas – первый модуль (unit) программы, который автоматически появляется в начале работы;
  • unit1.dfm – файл описания формы, используется для сохранения информации о внешнем виде главной формы;
  • project1.res – файл ресурсов, в нём хранятся иконки, растровые изображения, курсоры. Как минимум, содержит иконку приложения;
  • project1.dof – файл опций, является текстовым файлом для сохранения установок, связанных с данным проектом (например директив компилятора);
  • project1.cfg – файл конфигурации, содержит информацию о состоянии среды.

Кроме того, к проекту могут относиться файлы с картинками, видеофрагментами, звуками, файлы справочной системы и т.п. Однако перечисленными элементами управляет сам программист.

Если сохранить проект под другим именем, то кроме файла проекта изменят название и файлы с расширением res, dof и cfg. Если изменить имя файла модуля (.pas), то изменится и имя файла описания формы ( .dfm ).

Имена, данные системой по умолчанию, можно изменить. Хорошим стилем программирования считается использование имён, несущих смысловую нагрузку.

После компиляции программы получаются файлы с расширениями:

  • dcu – скомпилированные модули;
  • exe – исполняемый файл;
  • ~pa, ~dp – backup файлы (предыдущие версии).

Помимо модулей, связанных с формой, можно создавать отдельные модули, которые оформляются по обычным правилам языка Object Pascal (Delphi), сохраняются в отдельных файлах и имена которых указываются в разделе uses проекта или тех модулей, в которых они используются. Главный файл проекта представляет собой текстоый файл, содержащий программный код, записанный на языке Object Pascal. Этот файл подключает все используемые программные модули и содержит операторы для запуска приложения. При создании нового приложения Delphi автоматически создаёт файл проекта. Код файла проекта, содержащего одну форму, приведён ниже.

program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.begin
res}
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.

В разделе uses подключается системый модуль Forms и модуль формы Unit1. Название формы приводится в фигурных скобках. Директива компилятора {$R *.res} подключает к результирующему exe-файлу ресурсы.

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

Чтобы увидеть код файла проекта, надо выполнить команду View|Unit через меню или с помощью кнопки на панели инструментов, а затем в диалоговом окне выбрать Project1. Окно ViewUnit используется для вывода на экран кода файла проекта и входящих в него модулей.

При создании приложения Delphi генерирует пустую форму, текст модуля которой приведён ниже.

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, после которого пишется имя модуля. Имя модуля совпадает с именем файла, в котором он сохранён.

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

  • заголовок;
  • секция интерфейсных объявлений interface;
  • секция реализации implementation;
  • секция инициализации initialization;
  • секция завершения finalization;
  • терминатор end.

В необязательную секцию инициализации помещают операторы, которые осуществляют начальную настройку модуля и выполняются один раз при первом обращении к модулю. Необязательная секция finalization содержит операторы, выполняемые только один раз при любом завершении программы: нормальном или аварийном. Раздел finalization вводится в программу только при наличии секции initialization.