События Windоws и обработчики событий Delphi
Лабораторная работа № 4
Цель работы:научиться программировать различные обработчики событий
Управление программой в Windows основано на обработке сообщений о событиях,
которые происходят в этой многозадачной системе.
Событие -это некоторая ситуация,которая может возникнуть в аппаратномили программном обеспечении компьютера под влиянием внешних воздействий.
События можно разделить на следующие типы:
1. События, обусловленные действиями пользователя (UserEvents),которые,в своюочередь, можно классифицировать следующим образом:
- события щелчка мыши;
- события типа Drag&Drop, что означает "Перетащить и бросить" объект мышью;
- события клавиатуры (возникающие при нажатии клавиш);
2. Обычные (программно-управляемые события),которые являются косвеннымрезультатом действий пользователя. Примерами таких событий могут служить: события активизации, и завершения какого-либо процесса, события изменения состояния отдельных компонентов (компонент получает или теряет активность) и др.;
3. События, обусловленные исключительными ситуациями,которые могут возникать
в результате работы программ или оборудования и приводить к серьезным последствиям. Примерами таких событий могут служить: попытка деления на ноль, попытка чтения информации из несуществующего файла, неготовность устройства к работе (например, принтера или дисковода) и ряд других.
Программирование в Delphi заключается, главным образом, в организации обработки сообщений о событиях, то есть в написании кода обработчиков событий.
Обработчик события -это специальная подпрограмма,отвечающая за реакциюосновной программы на то или иное событие. ВDelphi обработчик события оформляется в виде процедуры.
Как и Windows, Delphi пытается найти обработчик на поступающее сообщение о происходящем событии. Такая подпрограмма может быть стандартной, то есть написанной для Windows и известной Delphi, либо ее создает сам программист.
Для того чтобы создать в Delphi нужный обработчик событий, следует выбрать интересующий Вас компонент, щелкнув по нему мышкой, перейти на закладку Events (События) Инспектора Объектов и, выбрав необходимое событие, дважды щелкнуть по его полю ввода. Раскроется Редактор Кода программы, куда Delphi автоматически поместит заготовку процедуры обработчика. Вам остается только вставить между служебными словами begin и end операторы программного кода, реализующие какую либо реакцию Вашей программы на данное событие. Для каждого компонента, в том числе и для формы, можно создать свои собственные обработчики событий
Списки событий, относящихся к конкретному компоненту, в том числе и к форме, заданы на странице Events (События) Инспектора Объектов.
Наиболее часто встречающиеся события для компонентов:
Название | Событие |
OnCreate | При создании объекта (формы, элемента управления). |
OnClick | Одинарный щелчок левой клавиши мыши на объекте |
OnDblClick | Двойной щелчок левой клавиши мыши на объекте |
OnMouseDown | При нажатии кнопки мыши |
OnMouseUp | При отпускании кнопки мыши |
OnMouseMove | При перемещении мыши над заданным компонентом |
OnKeyDown | Нажатие клавиши возвращает значение |
Key(тип: Word)-код нажатой клавиши | |
Shift(Тип: TShiftState)–состояние клавиши<Shift> | |
OnKeyPress | Нажатая символьная клавиша возвращает значение |
Key(тип: Char)-код нажатой клавиши | |
ОпКеyUр | При отпускание клавиши клавиатуры |
OnEnter | При получении элементом управления фокуса |
OnExit | При потере элементом управления фокуса |
Для каждого события Delphi автоматически определяет имя обработчика в соответствии с именем компонента, для которого эта процедура предназначена. Например, заголовок процедуры обработчика события щелчка левой клавиши мыши (Click) для компонента кнопка (Buttonl), размещенного в окне стартовой формы (Forml) будет выглядеть следующим образом:
Procedure TForm1.Button1Click( Sender:TObject);
Одновременно может обрабатываться несколько событий, что не только упрощает программирование, но и вызвано крайней необходимостью, поскольку и сама Windows одновременно работает с большим количеством разнообразных событий.
Задание 1.Создание обработчика событий для формы"Одинарный щелчок мышью".
Поместите на форму компонент Label (Метка). Цвет метки, тип и размер шрифта на ней задайте по желанию.
Активизируйте форму, щелкнув по ней левой клавишей мыши. Заголовку формы дайте название "Обработка событий".
Перейдите на страницу Events (События) Инспектора Объектов и внимательно рассмотрите, какие события для формы там присутствуют.
Выберете событие OnClick (Одинарный щелчок левой клавишей мыши) и в пустом поле справа от него выполните мышью двойной щелчок. В раскрывшемся окне Редактора Кода будет создана заготовка процедуры обработчика этого события для формы.
Обратите внимание на заголовок обработчика! Между ключевыми словами begin и end
вставьте подчеркнутый текст, приведенный ниже: procedure TForm1.FormСliсk(Sеndеr: TObject);
Begin
Label1.Caption: = 'ПРИВЕТ! ЭТО ОДИНАРНЫЙ ШЕЛЧОК !'; end;
Запустите приложение и проверьте выполнение одинарного щелчка мышью на форме.
Задание 2.Создание обработчика событий для формы“Двойной щелчок мышью”.
Активизируйте форму, и на странице Events (События) Инспектора Объектов выберете событие OnDblClick (Двойной щелчок левой клавишей мыши).
Раскройте Редактор Кода и вставьте в заготовку обработчика события подчеркнутый текст, приведенный ниже.