Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции програм_new_последняя версия1.doc
Скачиваний:
14
Добавлен:
14.09.2019
Размер:
697.34 Кб
Скачать

Виды событий

Выделяют две основные категории: события, обусловленные действиями пользователя (пользовательские события) и системные события (программно-управляемые).

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

Например, обработчик события OnClick - щелчка на кнопке Button1 –может иметь вид:

procedure TForml.ButtonlClick(Sender: TObject);

var x,y:real;

begin

x:=strtofloat(Edit1.Text);

//переменной x присваивается преобразованное строков.значение

//из компонента Edit1

y:=sqr(x);

Edit2.Text:=floattostr(y);

//преобразованное в строку значение y

//записывается в компонент Edit2

end;

где функция strtofloat(t) преобразует строку t в вещественное число; функция floattostr(t) преобразует вещественное число t в строку символов.

События мыши возникают в любом визуальном потомке класса TControl. События клавиатуры возникают только в оконных компонентах (в потомках класса TWinControl).

Самый простой обработчик события клавиатуры – OnKeyPress. Он перехватывает нажатие символьных клавиш.

Обработчик события OnKeyPress имеет тип TKeyPressEvent:

Property OnKeyPress:TKeyPressEvent;

Процедурный тип обработки этого события имеет вид:

type

TKeyPressEvent=procedure(Sender:Tobject;var Key:char) of

object;

Параметр Key содержит символ клавиши, нажатой пользователем на клавиатуре.

Обработчик события OnKeyPress вызывается, когда пользователь нажимает клавишу с чи­таемым символом из набора ASCII. Клавиши, не имеющие символьного значения (например, Shift, F1), не генерируют событий OnKeyPress. Обработчик события – нажатия символьной клавиши в компоненте Edit1 может иметь вид:

procedure TForm1.Edit1KeyPress(Sender:TObject;

var Key:Char);

var x,y:real;

begin if key=#13 then

begin

x:=strtofloat(Edit1 .Text);

y:=sqr(x);

label2.Caption:=floattostr(y);

//преобразованное в строку значение y становится

//надписью метки label2

end;

end;

К системным относятся события активизации, завершения, события изменения состояния отдельных компонентов и т.д., которые являются косвенным результатом действия пользова­теля. Примеры системных событий: OnCreate, OnActivate, OnPaint и др.

Обработчик события OnCreate вызывается при создании формы. В процедуре обработки события OnCreate следует определить те действия, которые должны быть выполнены в момент появления формы прежде, чем пользователь начнет с ней работать.

Property OnCreate:TNotifyEvent;

Обработчик события OnCreate для формы Form1 может иметь вид:

procedure TForm1.FormCreate(Sender: TObject);

begin

end;

Обработчик события OnActivate вызывается, если приложение или форма становятся ак­тивными (т.е. когда оно запускается, или когда вы переключаетесь на работу с этим приложением после работы с другим).

Обработчик события OnAclivate описывается:

Property OnActivate:TNotifyEvent;

Обработчик события OnActivate для формы Form1 имеет вид:

procedure TForm1.FormActivate (Sender: TObject);

begin

end;

Обработчик события OnPaint вызывается при получении сообщения Windows o необходимости нарисовать (перерисовать) изображение.

Обработчик события OnPaint описывается:

Property OnPaint:TNotifyEvent;

Обработчик события OnPaint для формы Form1 имеет вид:

procedure TForm1.FormPaint (Sender: TObject);

begin

end;