Общая организация программы в Delphi

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

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

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

9.1. Структура файла головной программы приложения Delphi

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

program <имя>;

{Объявления подключаемых модулей, а также объявления локальных для головного файла типов, классов, констант, переменных, описания локальных функций и переменных}

begin

{Операторы тела программы}

end.

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

Типичная головная программа приложения имеет следующий вид:

program Project1;

uses

Forms,

Unitl in 'Unitl.pas' {Forml}, Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

{Здесь вы можете поместить описания констант, переменных, функций, процедур, доступных для использования только в пределах данного файла}

begin

Application.Initialize;

Application.CreateForm(TForml, Forml);

Application.CreateForm(TForm2, Form2);

Application.Run;

end.

Программа начинается с ключевого слова program, после которого указывает­ся имя программы. Оно совпадает с именем файла, в котором был сохранен проект. Это же имя присваивается исполняемому файлу приложения. По умолчанию используется имя Project1.

СОВЕТ Всегда сохраняйте проект под осмысленным именем, изменяя тем самым имя проекта, заданное Delphi по умолчанию. Иначе очень скоро вы запутаетесь в программах Projectl, находящихся в различных каталогах.

После заголовка в тексте программы располагается предложение

uses

Forms,

Unitl in 'Unitl.pas' {Forml}. Unit2 in 'Unit2.pas' {Form2}:

В этом предложении перечисляются модули, загружаемые программой. Пер­вый модуль Forms является системным, а следующие — модулями разработан­ных программистом форм. Данный пример показывает, что в проекте были созданы две формы с именами Forml и Form2 в модулях с именами Unitl и Unit2. Заключенные в фигурные скобки названия форм — это комментарии.

Предложение в головном файле программы может также содержать после имени модуля ключевое слово in, вслед за которым указывается имя файла, в котором содержится модуль, например:

uses Unitl in 'Unit1.pas'. Unit2 in 'c:\exampes\Unit2.pas':

Ключевое слово in используется в случаях, когда необходимо указать Delphi, где следует искать соответствующие файлы.

ВНИМАНИЕ В предложениях uses, включаемых в модули, использование in не допускается.

Следующая строка текста — {$R *.RES} — представляет собой директиву ком­пилятора, связывающую с исполняемым модулем файлы ресурсов. Она ука­зывает файлы ресурсов (.DFM,.RES), которые должны быть включены в испол­няемый модуль или библиотеку. Эти файлы должны быть файлами ресурсов Windows. По умолчанию для файлов ресурсов используется расширение.RES. В процессе компоновки программы или библиотеки файлы, перечисленные в директивах {$R}, копируются в исполняемый модуль.

Первый оператор в теле программы Application.Initialize; инициализирует приложение,

следующие за ним операторы Application.CreateForm(TForm1, Form1); и Application.CreateForm(TForm2, Form2); создают объекты форм Form1 и Form2,

последний оператор, Application.Run; начинает выполнение приложения.

Если требуется добавить какой-то текст в головную программу, то следует ввести описания необходимых констант, переменных, функций и процедур в место программы, отмеченное соответствующим комментарием в приведен­ном ранее тексте. Кроме того, можно добавить или изменить операторы в те­ле программы, например, произвести настройки при запуске приложения на выполнение (скажем, настроить формы на русский язык) или сделать запрос пользовательского ввода и в зависимости от ответа создавать или не созда­вать те или иные формы. Например, если требуется, чтобы вторая форма при­ложения Form2 создавалась только в случае, если при запуске приложения в ко­мандной строке указана опция Y, то следует заменить приведенный ранее опе­ратор

Application.CreateForm(TForm2, Form2); оператором

If (ParamStr(1) = 'Y')

then Application.CreateForm(TForm2, Form2);

Этот оператор анализирует первый параметр командной строки. Если прило­жение Projectl запущено командой Projectl Y, то будет создана форма Form2. В остальных случаях этой формы не будет.

ПРИМЕЧАНИЕ Можно добавить в головной файл и другие операторы, функции, процедуры. Однако делать это не рекомендуется, поскольку такие действия противоречат принципу модульности. Все необходимые в начале выполнения процедуры и функции настройки следует помещать в отдельный модуль без формы.

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


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



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