Материал: Мансуров. Основы программирования в среде Lazarus. 2010

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

На экране появится пустая форма, рис. 6.11.

Рис. 6.11. Форма нового проекта

Если формы не видно, нажмите клавишу F12.

В окне редактора исходного кода Lazarus автоматически создаст следую-

щий код:

unit Unit1;

{$mode objfpc}{$H+} interface

uses

Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs;

type

TForm1 = class(TForm) private

{private declarations } public

{public declarations }

end;

var

471

6.3 Визуальное программирование в среде Lazarus

____________________________________________________________________

Form1: TForm1;

implementation

initialization {$I unit1.lrs}

end.

Мы видим, что Lazarus создал для нас модуль со стандартным именем

Unit1. А в теле модуля создается класс TForm1 основанный на базовом классе

TForm и описывает объект – стандартное графическое окно.

Сразу же сохраните свой проект в нужной папке. Если необходимо, то соз-

дайте новую папку. При сохранении помните, что имена модуля и проекта не должны совпадать, то есть файл проекта (lpr) и файл модуля (pas) должны иметь разные имена, потому что Lazarus присваивает имя модулю (в исходном коде) такое же, какое и имя файла модуля, а программе по имени файла проек-

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

Исходный код основной программы (проекта) будет сохранен в файле с именем <Имя проекта>.lpr и имеет вид:

program project1; {$mode objfpc}{$H+} uses

{$IFDEF UNIX}{$IFDEF UseCThreads} cthreads,

{$ENDIF}{$ENDIF}

Interfaces, // this includes the LCL widgetset Forms, Unit1, LResources

{ you can add units after this };

472

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

{$IFDEF WINDOWS}{$R project1.rc}{$ENDIF}

begin

{$I project1.lrs} Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run;

end.

Здесь в объявлении uses перечисляются модули, подключаемые в проект по умолчанию. Кроме того, Lazarus автоматически включил имя только что созданного модуля. По умолчанию это Unit1. Далее директивой

{$IFDEF WINDOWS}{$R project1.rc}{$ENDIF}

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

В исполняемой части программы содержится еще одна директива

{$I project1.lrs}

с помощью которой подключается автоматически генерируемый файл ресурсов

Lazarus. Заметьте, что это не файл ресурсов Windows.

Последние три оператора

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

473

6.3 Визуальное программирование в среде Lazarus

____________________________________________________________________

реализуют обращение к методам объекта Application. В объекте

Application собраны данные и подпрограммы, необходимые для нормаль-

ного функционирования программы в среде операционной системы. Lazarus

автоматически создает объект-программу Application для каждого нового проекта. Метод Initialize отвечает за инициализацию (первоначальную настройку) приложения. Метод CreateForm создает главную форму прило-

жения Form1 (окно приложения). После вызова метода Run осуществляется запуск нашего приложения.

Без особой необходимости не следует редактировать код проекта. Поэтому при создании проекта этот код не виден. Lazarus "скрывает" этот код от из-

лишне любопытных. Но, если "очень хочется", то можно посмотреть его в ме-

ню Проект->Просмотреть исходный код проекта или открыть файл проекта с расширением .lpr любым текстовым редактором.

А исходный код нашего приложения будет сохранен в файле <имя моду-

ля>.pas (по умолчанию Unit1.pas).

Откомпилируйте и выполните свое приложение. Вы увидите пустое окно.

Ну и что тут такого, скажете вы. По большому счету вы правы, ничего особен-

ного. Но если вдуматься, то мы с вами только что, без видимых усилий, создали полноценное приложение с графическим интерфейсом! Окно вашей программы обладает всеми свойствами стандартных графических окон. Его можно свер-

нуть, можно развернуть во весь экран, можно менять размеры. Окно можно пе-

ремещать в любое место экрана. Так же как и любое другое окно, оно имеет строку заголовка и системное меню. Не так уж и мало! И все это на основе стандартного класса TForm. В Lazarus имеется немало таких стандартных клас-

сов, на основе которых можно создавать приложения практически любой слож-

ности!

Как уже отмечалось, класс описывает некоторый объект. Чтобы иметь возможность обращаться в программе к этому объекту, необходимо создать эк-

474

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

земпляр класса. Это делается с помощью объявления

var

Form1: TForm1;

Теперь мы можем работать с этим объектом, обращаясь к нему по имени

Form1.

6.3.2 Форма и ее основные свойства

При создании нового проекта появляется пустая форма (рис. 6.8.). Следует заметить, что форма и окно приложения это не одно и то же. Форма – это то,

что вы видите во время проектирования, а окно – это то, что видит пользова-

тель во время выполнения вашего приложения. Таким образом, с помощью формы вы проектируете вид окна вашего приложения. Кроме того, форме соот-

ветствует класс, производный от базового класса TForm.

В главе V мы с вами рассматривали спецификаторы доступа private, protected и public с помощью которых можно управлять видимостью членов класса извне.

Имеется еще один спецификатор – published (опубликованный). В этом разделе помещаются свойства, которые пользователь может устанавливать на этапе проектирования, но доступны и во время выполнения, т.е. содержат так называемую RTTI – информацию (run-time type information). Обычно в разделе published размещаются только свойства и события.

Все компоненты Lazarus имеют опубликованный интерфейс, который ото-

бражается в инспекторе объектов.

Рассмотрим подробнее некоторые свойства формы. Как вы уже поняли,

свойства формы, равно как и события, представляют собой опубликованную часть интерфейса класса формы. Их можно будет увидеть в инспекторе объек-

475

Смотрите также:

11 Горм +
113
14
1433
1511
1632
199
204
2714
2N4264RE