Планирование уроков на учебный год (по учебнику К.Ю. Полякова, Е.А. Еремина, полный углублённый курс, по 4 часа в неделю)



Уроки 95 - 97
Программы с графическим интерфейсом
(§51. Программы с графическим интерфейсом. §52. Основы программирования в RAD-средах)




Содержание урока

§51. Программы с графическим интерфейсом
§52. Основы программирования в RAD-средах

Общий подход

Простейшая программа

Свойства объектов

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

Вопросы и задания

Задача


§52. Основы программирования в RAD-средах


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


На вкладке События перечислены все события, которые может обрабатывать форма. Названия их обработчиков в Инспекторе объектов начинаются с букв On (в переводе с англ. — в ответ на...). Чтобы создать обработчик, нужно дважды щёлкнуть мышью на поле справа от его названия. При этом открывается окно редактора и в текст модуля автоматически добавляется пустой обработчик события (шаблон), в который остаётся только добавить нужные команды.

Рассмотрим простой пример. Вы знаете, что многие программы запрашивают подтверждение, когда пользователь завершает их работу. Для этого можно использовать обработчик OnCloseQuery (в переводе с англ. — запрос на закрытие). Обработчик, созданный двойным щелчком мышью, имеет вид:

procedure TForml.FormCloseQuery(Sender: TObject;
var CanClose: boolean);
begin
end;

Одновременно этот метод добавляется в описание класса TForml (выше секции private).

Как видно из заголовка процедуры, в обработчик передаются два параметра:

• Sender — ссылка на объект, от которого пришло сообщение о событии (в данном случае это будет сама форма);
• CanClose — изменяемый логический параметр, в который нужно записать результат запроса: истинное значение означает, что можно закрывать окно, ложное — что нельзя.

В Lazarus есть стандартная функция MessageDlg, которая выводит на экран запрос с несколькими кнопками (рис. 7.15) и позволяет получить ответ пользователя (код нажатой кнопки).

Рис. 7.15

Рис. 7.15

В тело обработчика можно добавить условный оператор, который запишет в переменную CanClose значение True, если пользователь подтвердил выход из программы:

procedure TMainForm.FormCloseQuery(Sender: TObject;
var СапС1озе: boolean);
var res: TModalResult;
begin
	rеs:=МеssаgеDlg('Подтверждение',
		'Вы действительно хотите выйти ив программы?',
		mtConfirmation, [mbYea,inbNo], 0);
	CanClose : = (rеs=mrYеs) ; 
end; ;

Здесь вызывается функция MessageDlg, и её результат записывается в переменную res типа TModalResult. Если это значение совпадает со встроенной константой ,mrYes (т. е. пользователь нажал на кнопку Yes), в переменную CanClose записывается значение True, и программа завершается, иначе команда отменяется. Функции MessageDlg передаются пять параметров:

• заголовок окна;
• текст вопроса;
• тип запроса, определяющий рисунок слева от текста: mtError ошибка;

mtWarning предупреждение;
mtlnformation информация;
mtConf irmation подтверждение;

• набор (множество) кнопок, которые появляются под текстом; в нашем случае это кнопки Yes и No, обозначенные константами mbYes и mbNo;
• номер раздела справочной системы, в котором есть объяснение этой ситуации (у нас нет справочной системы, поэтому ставим 0).

Итак, мы построили простейшую работоспособную программу и познакомились со средой Lazarus. В следующем параграфе вы узнаете, как работать с компонентами.

Следующая страница Вопросы и задания



Cкачать материалы урока






Наверх