Pascal. Delphi. Lazarus. Windows-приложение

Приложение типа VCL Forms Application в Delphi. Приложение типа 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.

Delphi. Структура приложения типа VCL Forms Application

Рисунок 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, которое имеет одну главную форму и один дополнительный модуль.

Lazarus. Структура приложения типа Applicaiton

Рисунок 2. Структура приложения типа Applicaiton в системе Lazarus

Стрелкой показано подключение в разделе uses модуля Unit1, который соответствует главной форме программы и размещается в файле Unit1.pas. Если нужно подключить второй модуль, то в разделе uses этот модуль дописывается к предыдущим модулям через запятую.

 


Связанные темы