Pascal. Delphi. Lazarus. Додаток типу Windows Forms

Додаток типу VCL Forms Application у Delphi. Додаток типу Application у Lazarus

Дана тема є продовженням теми:


Зміст


Пошук на інших ресурсах:




1. Структура додатку типу VCL Forms Application в Delphi

Якщо в системі Delphi створити додаток типу VCL Forms Application, то програма буде складатись з таких частин:

  • головний модуль програми;
  • модулі, що підключаються до основної програми.

 

1.1. Головний модуль

При створенні додатку, головний модуль програми має наступний код

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. Структура додатку типу Application

Рисунок 2. Структура додатку типу Applicaiton в системі Lazarus

Стрілкою показано підключення в розділі uses модуля Unit1, який відповідає головній формі програми і розміщується у файлі Unit1.pas. Якщо потрібно підключити другий модуль, то у розділі uses цей модуль дописується до попередніх модулів через кому.

 


Споріднені теми