Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
osnovy_programmirovanija_v_srede_lazarus.pdf
Скачиваний:
182
Добавлен:
18.03.2015
Размер:
6.53 Mб
Скачать

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

____________________________________________________________________

Таблица 6.1

№ п/п

Событие

 

Когда возникает

 

 

 

 

 

1.

OnCreate

Событие

возникает

при

 

 

создании

окна

и только

 

 

один раз.

 

 

 

2.

OnShow

Это событие генерируется

 

 

непосредственно

 

перед

 

 

тем, когда окно станет ви-

 

 

димым.

 

 

 

3.

OnActivate

Это событие генерируется,

 

 

когда окно становится ак-

 

 

тивным, то есть когда по-

 

 

лучает фокус ввода.

 

4.

OnPaint

Это

событие

возникает

 

 

каждый раз при перери-

 

 

совке окна.

 

 

5.

OnReSize

Это

событие

возникает

 

 

каждый раз при изменении

 

 

размеров окна.

 

 

6.

OnClose

Событие возникает при за-

 

 

крытии окна.

 

 

7.

OnKeyDown

Событие

наступает

при

 

 

нажатии любой клавиши.

8.

OnKeyPress

Событие

наступает

при

 

 

нажатии клавиши символа.

9.

OnKeyUp

Событие

возникает

при

 

 

отпускании любой клави-

 

 

ши.

 

 

 

 

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

6.3.1 Создание графического приложения

Для создания графического приложения можно в главном меню открыть пункт Файл-> Создать. Во вкладке Проект выберите пункт Приложение, рис.

6.7.

468

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

____________________________________________________________________

Рис. 6.7. Создание графического приложения

Нажмите ОК.

Второй способ. Выберите пункт меню Проект, Создать проект… (рис. 6.8).

Рис. 6.8. Меню "Проект"

Выберите Приложение и нажмите ОК, рис. 6.9

469

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

____________________________________________________________________

Рис. 6.9. Другой способ создания графического приложения

Кроме того, если в настройках окружения (Окружение-> Настройки ок-

ружения-> Файлы) снять галочку "Открывать последний проект при запуске" (рис. 6.10.), то Lazarus автоматически будет создавать новый проект GUI-

приложения при каждом запуске.

Рис. 6.10. Окно "Параметры IDE"

470

Глава 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]