Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Начало работы в Delphi.doc
Скачиваний:
16
Добавлен:
18.11.2019
Размер:
428.03 Кб
Скачать

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

Вид созданной формы подсказывает, как работает приложение. Очевидно, что пользователь должен ввести в поле редактирования значение веса в фунтах и щелкнуть на кнопку <Пересчет>. Щелчок на изображении командной кнопки - это пример того, что в Windows называется событием.

Событие - это то, что происходит во время работы приложения в Delphi у каждого события есть имя. Например, щелчок кнопкой мыши - это событие OnClick, двойной щелчок мышью - событие OnDblClick.

Таблица 6. События Windows

Событие

Происходит

OnClick

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

OnDblClick

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

OnEnter

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

OnError

Когда элемент контроля обнаруживает ошибку и не может вернуть информацию об ошибке вызывающей программе

OnExit

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

OnKeyDown

При нажатии клавиши. События OnKeyDown и OnKeyPress - это чередующиеся, повторяющиеся события, которые происходят до тех пор, пока не будет отпущена удерживаемая клавиша.

OnKeyPress

Когда пользователь нажимает клавишу, которая генерирует печатаемый символ. Может происходить также при одновременном нажатии клавиши печатаемого символа и клавиши <Ctrl>. Не происходит при нажатии клавиш <Tab>, <Enter> и клавиш перемещения курсора.

OnKeyUp

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

OnMouseDown

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

OnMouseMove

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

OnMouseUp

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

 Реакцией на событие должно быть какое-либо действие. Например, реакцией на событие OnClick, произошедшее на кнопке <Пересчет>, должен быть пересчет веса из фунтов в килограммы. В Дельфи реакция на событие реализуется как процедура обработки события. Таким образом, задача программиста состоит в написании необходимых процедур обработки событий. Методику создания подобных процедур рассмотрим на примере процедуры обработки события для командной кнопки.

Сначала необходимо выделить объект, для которого создается процедура обработки события. В нашем примере таким объектом является командная кнопка <Пересчет>. Затем следует выбрать вкладку Events (события) диалогового окна Object Inspector. На вкладке будет отображен список событий, которые способен воспринимать маркированный (выделенный) компонент. Список событий для наше командной кнопки приведен на рисунке 9.

Рисунок 9.

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

Для того, чтобы создать процедуру обработки события, необходимо выполнить двойной щелчок в поле имени процедуры обработки события (т.е. в правой колонке). В результате откроется окно редактора кода Unit1.pas (в Дельфи) кодом называется текст программы) с шаблоном процедуры обработки события (рисунок 10), который создается в Дельфи автоматически.

Рисунок 10.

Дельфи присваивает процедуре обработки события имя, которое состоит из двух частей. Первая часть имени идентифицирует форму, содержащую объект, для которого создается процедура обработки события. Вторая часть имени идентифицирует сам объект и событие. В нашем примере имя формы - Form1, имя командной кнопки - Button1, а имя события Click.

В окне редактора кода между begin и end можно печатать инструкции языка Object Pascal, реализующие процедуру обработки события. Ниже приведен текст процедуры обработки события OnClick для командной кнопки <Пересчет> :

procedure TForm1.Button1Click(Sender: TObject); var f:real; //вес в фунтах k:real; //вес в килограммах

begin f:=StrToFloat(Edit1.Text); //перевели содержимое Edit1 в число k:=f*0.4059; label2.Caption:=Edit1.text+' фунт(а/ов) это '+ FloatToStr(k)+' килограмм'; end;

[an error occurred while processing this directive]

Программа получает исходные данные из поля редактирования Edit1 путем обращения к свойству Text. Свойство Text содержит строку символов (текст), поэтому в программе для преобразования изображения числа в действительное число используется функция StrToFloat.

Вычисленное значение выводится программой в поле метки Label2 путем присвоения этого значения свойству Caption. Для преобразования действительного числа в его изображение (текст сообщения с результатом пересчета) используется функция FloatToStr.