Приложение типа VCL Forms Application в Delphi. Приложение типа Application в Lazarus
Данная тема есть продолжением темы:
Содержание
- 1. Структура приложения типа VCL Forms Application в Delphi
- 2. Структура приложения типа Application в системе Lazarus
- Связанные темы
Поиск на других ресурсах:
1. Структура приложения типа VCL Forms Application в Delphi
Если в системе Delphi создать приложение типа VCL Forms Application, то программа будет состоять из следующих частей:
- главный модуль программы;
- модули, которые подключаются к основной программе.
⇑
1.1. Главный модуль *.dpr
При создании приложения, главный модуль программы помещается в файле с расширением *.dpr и имеет следующий код
program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TForm1, Form1); Application.Run; end.
Как видно из вышеприведенного кода, к главному модулю подключается дополнительный модуль с помощью строки
Unit1 in 'Unit1.pas' {Form1};
здесь
- Unit1 – название модуля в программе;
- Unit1.pas – название файла, в котором описывается код модуля Unit1.
При создании приложений, использующих интерфейс Windows, этот код менять не нужно. Он корректируется автоматически системой Delphi при добавлении в программу новых файлов модулей.
Например, после добавления второй формы с именем Unit2, которая размещается в файле Unit2.pas, раздел uses будет иметь вид
uses Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}; ...
Также автоматически будет добавлена новая строка в раздел операторов
... begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Application.Run; end.
⇑
1.2. Дополнительные модули. Структура
В приложениях типа VCL Forms Application каждый содержательный элемент программы, обычно формируется в отдельный модуль (файл). Содержательным элементом может быть, например, форма или отдельный файл с набором (библиотекой) функций и тому подобное.
В наиболее общем случае, структура любого модуля добавляется, следующая
// 1. Заголовок модуля unit ModuleName; // 2. Интерфейсный раздел. Здесь объявляются общедоступные (public) // структуры данных, переменные, константы, процедуры та функции interface // 2.1. Подключение дополнительных модулей uses ... // 2.2. Описательная часть в интерфейсной части // Здесь следують разделы const, type, var // Роздел label использовать нельзя ... // 2.3. Объявление процедур и функций без их реализации ... // 3. Раздел реализации. Здесь объявляются внутренние (скрытые) // структуры данных, переменные, константы, процедуры и функции. implementation // 3.1. Подключение внешних модулей (библиотек) uses ... // 3.2. Разделы описаний label, const, type, var ... // 3.3. Реализация процедур и функций. // Здесь объявляются как общедоступные (п. 2.3) // так и внутренние (скрытые) процедуры и функции. ... end.
⇑
1.3. Пример структуры приложения типа VCL Forms Application. Рисунок
На рисунке 1 изображена структура приложения типа VCL Forms Application. Рассматривается случай с подключенными двумя модулями с именами Unit1, Unit2.
Рисунок 1. Приложение VCL Forms Application. Случай с двумя подключенными формами, которые размещены в файлах Unit1.pas и Unit2.pas
⇑
2. Структура приложения типа Application в системе Lazarus
В системе Lazarus есть возможность создавать приложения, которые поддерживают интерфейс Windows и обеспечивают кроссплатформеннисть. Это приложения типа Application. В приложениях типа Application системы Lazarus структура программы подобна структуре Windows-приложений системы Delphi и состоит из следующих основных частей:
- главный файл проекта *.lpr (Lazarus Project Main Source)
- дополнительные модули (unit), подключаемые к главному файла проекта.
⇑
2.1. Главный файл проекта *.lpr
Главный файл проекта имеет следующий вид
program project1; {$mode objfpc}{$H+} uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} Interfaces, // this includes the LCL widgetset Forms, Unit1 { you can add units after this }; {$R *.res} begin RequireDerivedFormResource:=True; Application.Scaled:=True; Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end.
В процессе создания приложения в системе Lazarus этот файл не нужно корректировать, он корректируется автоматически при добавлении (удалении) дополнительных частей в программе. Это могут быть новые формы, файлы модулей с библиотеками функций и тому подобное.
⇑
2.2. Файлы дополнительных модулей
В системе Lazarus составляющая файла дополнительных модулей такая же как в системе Delphi.
unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, Forms, Controls, Graphics, Dialogs; type TForm1 = class(TForm) private public end; var Form1: TForm1; implementation {$R *.lfm} end.
Модули имеют два основных раздела:
- interface — здесь объявляются общедоступные компоненты модуля;
- implementation — здесь объявляются скрытые компоненты модуля и непосредственно реализация.
⇑
2.3. Пример структуры для приложения типа Application. Рисунок
На рисунке 2 изображена структура приложения типа Application в системе Lazarus, которое имеет одну главную форму и один дополнительный модуль.
Рисунок 2. Структура приложения типа Applicaiton в системе Lazarus
Стрелкой показано подключение в разделе uses модуля Unit1, который соответствует главной форме программы и размещается в файле Unit1.pas. Если нужно подключить второй модуль, то в разделе uses этот модуль дописывается к предыдущим модулям через запятую.
⇑
Связанные темы
- Структура программы на языке Паскаль в системах программирования Delphi и Lazarus. Консольное приложение
- Принципы структурного программирования. Модульная разработка программ
⇑