Delphi — мощный визуальный инструмент разработки программ. Когда мы используем Delphi для разработки приложений WINDOWS, хотя Delphi предоставляет множество свойств (PRperty) и событий (Event) для каждого визуального компонента, в реальных приложениях мы можем столкнуться с некоторыми специальными событиями, которые нам не нужны. поэтому нам нужно добавить эти специальные события в приложение. При возникновении этих событий процедуры обработки этих событий могут быть вызваны немедленно. В этой статье используются примеры, иллюстрирующие, как добавлять события в приложение и обрабатывать их.
В Delphi события на самом деле являются специализированными свойствами, которые являются указателями на процедуру. Чтобы добавить событие, вы должны сначала указать указатель на процесс события в определенном классе. Функция этого указателя — выполнить процесс, на который указывает этот указатель, для обработки события после его возникновения. Наконец, определенные атрибуты событий и связанный с ними указатель обработки событий публикуются через опубликованный спецификатор.
В этом примере FtooBig — это определенный указатель процесса обработки событий, а OnTooBig — имя атрибута события. Указатель процесса обработки событий FtooBig предназначен для указания на процесс TooBig1 посредством инициализации программы. Поместите три поля редактирования на форму Delphi (Form1), а именно Edit1, Edit2 и Edit3, и поместите кнопку Button1. Программа устанавливает частные целочисленные переменные val1, val2 и res. Переменная res используется для записи произведения val1 и val2 и его отображения с помощью Edit3. Когда одно из данных, введенных через Edit1 и Edit2, превышает 100, будет инициировано событие и будет вызвана процедура обработки события TooBig1 для отображения диалогового окна, указывающего, что это событие произошло и было обработано. Исходный код программы следующий: Программа отлажена в Delphi 3.
unit Unit1;интерфейсы используют Windows, сообщения, SysUtils, классы, графику, элементы управления, формы, диалоги, StdCtrls;type TForm1 = class(TForm) Edit1: TEdit; {Введите первое целое число} Edit2: TEdit {Введите второе целое число } Edit3; : TEdit; {Выведите произведение первых двух целых чисел} Button1: TButton процедура Button1Click(Sender: TObject); процедура TooBig1(Sender: TObject); {Эта процедура вызывается при срабатывании события} процедура FormCreate(Sender: TObject); два произведения чисел} FTooBig : TNotifyEvent {определить указатель на обработчик событий FTooBig} { Частные объявления } public { Публичные объявления } опубликованное свойство; OnTooBig:TNotifyevent чтение FTooBig запись FTooBig;{определить событие} end;var Form1: TForm1;реализация{$R *.DFM}процедура TForm1.Button1Click(Sender: TObject);begin val1 := StrToInt(Edit1.Text); = StrToInt(Edit2.Text); если(val1< 100) и (val2< 100) then start res := val1*val2; Edit3.Text := IntToStr(res); end else if Assigned(FTooBig), then OnTooBig(Self);end;procedure TForm1.TooBig1(Sender: TObject). );beginapplication.MessageBox('Слишком большой','Тестовое событие!',MB_OK);end;procedure TForm1.FormCreate(Sender: TObject);begin val1:=1; val2:=1; FTooBig := TooBig1;{Укажите указатель обработчика событий на обработчик событий}end;end.