logo
Методичка_Delphi_Ч1

События и процедуры обработки событий

Рисунок 1.6 - Вкладка “События” окна Object Inspector.

События (Events) – это некоторые, завершившееся во время работы приложения, действия пользователя или приложения. Событиям присваиваются стандартные имена. Ниже, в таблице 1.1 приведены примеры некоторых событий.

Таблица 1.1 – Некоторые события визуальных компонент

OnClick

При щелчке кнопкой мыши

OnMouseDown

При нажатии кнопки мыши

OnMouse Up

При отпускании кнопки мыши

OnMouseMove

При перемещении мыши

OnKeyPress

После ввода символа с клавиатуры

OnKeyDown

При нажатии клавиши клавиатуры

OnKeyUp

При отпускании нажатой клавиши клавиатуры

OnCreate

При создании объекта (формы, элемента управления).

OnPaint

При появлении окна на экране в начале работы программы, после появления части окна, которая, например, была закрыта другим окном и в других случаях

QnEnter

При получении элементом управления фокуса

OnExit

При потере элементом управления фокуса

В Delphi есть возможность запрограммировать реакцию приложения на событие, то есть сделать так, чтобы приложение выполняло некоторую работу в ответ на определенные действия пользователя. Следует учитывать, что значительную часть обработки события берет на себя компонент. Поэтому программист должен разрабатывать процедуру обработки события только в том случае, если реакция на событие отличается от стандартной процедуры или не определена.

В левой колонке вкладки Events перечислены имена событий, которые может воспринимать выбранный компонент. Если для события определена процедура обработки события, то в правой колонке, рядом с именем события, выводится имя этой процедуры. Если процедура не определена, то поле пустое.

Для обработки события можно использовать уже созданную процедуру, выбрав ее имя из раскрывающегося списка, а если подходящая процедура еще не создана, то следует ее создать.

Для создания процедуру обработки события, нужно сделать двойной щелчок мышью в поле имени процедуры обработки соответствующего события. В результате этого откроется окно редактора кода, в котором будет создан шаблон процедуры обработки события. Шаблон процедуры расположен в разделе Implementation модуля, и мигающий курсор приглашает Вас запрограммировать обработку события. Кроме того, объявление процедуры (ее заголовок) появляется в описании класса Tform1.

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

На рисунке 1.7 показано окно редактора кода с заготовкой процедуры обработки щелчка (Click) по кнопке Button1.

Delphi присваивает процедуре обработки события имя, которое состоит из трех частей. Первая часть имени это имя класса, вторая часть идентифицирует компонент, третья часть идентифицирует событие. В нашем примере класс- TForml, имя компонента – Button1, событие – Click.

Вы можете изменить имя процедуры, но делать это следует в окне Object Inspector.

В окне редактора кода между словами begin и end нужно вписать инструкции, реализующие функцию обработки события.

Редактор кода выделяет ключевые слова языка программирования (procedure, var, begin, end, if и др.) полужирным шрифтом, что делает текст программы более выразительным, и облегчает восприятие структуры программы.

Помимо ключевых слов редактор кода выделяет курсивом комментарии.

При написании кода часто приходится обращаться к полям компонент. Для упрощения ввода имен полей, встроенный редактор кода выводит список имен всех свойств объекта, как только вы нажмете точку после ввода имени компонента. При нажатии клавиши «пробел», имя свойства переносится в текст. Этот список имен, которые можно использовать в данный момент, вызывается и при нажатии комбинации клавиш Ctrl+Пробел.

Рисунок 1.7- Окно редактора кода с шаблоном процедуры

Если необходимо удалить процедуру, то достаточно удалить инструкции, написанные Вами, оставив шаблон пустым. После синтаксической проверки проекта, пустые процедуры исчезнут. Синтаксическую проверку можно вызвать функцией меню Project->Syntax Check.