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

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

____________________________________________________________________

6.3.3 Компоненты

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

зайн вашей программы. Компоненты также как и форма являются некоторыми графическими объектами. И каждый компонент реализован в виде класса. На-

пример, компонент TLabel (надпись) реализован в виде класса. Название ком-

понента соответствует имени класса. То есть когда мы ведем речь о компоненте

TLabel, мы подразумеваем класс TLabel.

Компоненты бывают видимыми и невидимыми. При проектировании фор-

ма выступает в роли контейнера для компонентов. При этом на форму можно разместить и невидимые компоненты.

Свойства и методы компонентов также отображаются в инспекторе объек-

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

6.3.4 Обработчики событий

Свойства объекта определяют его внешний вид (размер, шрифт, цвет и т.д.), а совокупность событий определяют поведенческую сторону объекта. Об-

работчиком события является процедура, которая выполняет те или иные дей-

ствия в ответ на наступление события. Т.е. с помощью этой процедуры (обра-

ботчика события) реализуется реакция объекта на событие, например на щел-

чок мыши.

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

Инспектор объектов позволяет определить обработчики событий, на кото-

рые должна реагировать форма или ее компоненты. Во вкладке События в ле-

481

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

____________________________________________________________________

вой колонке приведен список всех событий для данного объекта. Не обязатель-

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

торе объектов откройте вкладку События. Выберите событие OnCreate, рис.

6.16. Это событие возникает при создании окна приложения. Щелкните по кнопке с троеточием. В редакторе кода появится заготовка кода процедуры об-

работчика данного события, рис. 6.17.

Рис. 6.16. Вкладка "События"

Рис. 6.17. Заготовка кода процедуры обработчика события

482

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

____________________________________________________________________

Обратите внимание, Lazarus автоматически присвоил процедуре имя

FormCreate, присоединив к нему имя класса TForm1. В инспекторе объектов также появилось имя процедуры FormCreate – обработчика события

OnCreate.

Перейдите в редактор исходного кода, в обработчике события

FormCreate введите следующий код:

Form1.Caption:='Моѐ первое графическое приложение';

Запустите свое приложение. Вы увидите, что в строке заголовка окна вме-

сто стандартного Form1, появился ваш текст.

Из этого примера мы можем сделать один очень важный вывод. Оказыва-

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

ложения. Для доступа к свойству объекта необходимо указать имя этого объек-

та (в нашем случае формы Form1) и через точку имя свойства (Caption).

Далее, в инспекторе объектов выберите событие OnClick. В обработчике события введите код:

Form1.Caption:= 'Зачем ты на меня нажал?';

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

диться, что ваше приложение на самом деле реагирует на нажатие мыши.

Выберите теперь, например, событие OnDblClick. Если вы раскроете раскрывающийся список, то вы увидите список уже имеющихся обработчиков событий, рис. 6.18.

483

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