Delphi は、強力なビジュアル プログラム開発ツールです。 Delphi を使用して WINDOWS アプリケーションを開発する場合、Delphi はビジュアル コンポーネントごとに多くのプロパティ (PRperty) とイベント (Event) を提供しますが、実際のアプリケーションでは、Delphi が提供していない特殊なイベントが発生することがあります。したがって、これらの特別なイベントをアプリケーションに追加する必要があります。これらのイベントが発生すると、これらのイベントを処理するプロシージャをすぐに呼び出すことができます。この記事では、例を使用して、アプリケーションにイベントを追加し、イベントを処理する方法を説明します。
Delphi では、イベントは実際には特殊なプロパティであり、プロシージャへのポインタです。イベントを追加するには、まず定義されたクラスでイベント プロセスへのポインターを指定する必要があります。このポインターの機能は、イベントが発生したときに、このポインターが指すプロセスを実行してイベントを処理することです。最後に、定義されたイベント属性とそれらに関連付けられたイベント処理ポインターが、published 指定子を介して公開されます。
この例では、FtooBig は定義されたイベント処理プロセス ポインターであり、OnTooBig はイベント属性名です。イベント処理プロセスポインタFtooBigは、プログラムの初期化によりプロセスTooBig1を指すようにされる。 Delphi フォーム (Form1) に 3 つの編集ボックス (Edit1、Edit2、Edit3) を配置し、ボタン Button1 を配置します。プログラムは、プライベート整数変数 val1、val2、res を設定します。変数 res は、val1 と val2 の積を記録し、Edit3 を使用して表示するために使用されます。 Edit1 および Edit2 を通じて入力されたデータのいずれかが 100 より大きい場合、イベントがトリガーされ、イベント処理プロシージャ TooBig1 が呼び出されて、このイベントが発生して処理されたことを示すダイアログ ボックスが表示されます。 Delphi 3でデバッグしたソースプログラムコードは以下の通りです。
ユニット Unit1; インターフェイスは Windows、メッセージ、SysUtils、クラス、グラフィックス、コントロール、フォーム、ダイアログ、StdCtrls を使用します;type TForm1 = class(TForm) Edit1: TEdit; {最初の整数を入力します} Edit2: TEdit; {2 番目の整数を入力します } Edit3; : TEdit; {最初の 2 つの整数の積を出力} Button1: TButton プロシージャ Button1Click(Sender: TObject); プロシージャ TooBig1(Sender: TObject); {このプロシージャはイベントがトリガーされたときに呼び出されます} プロシージャ FormCreate(Sender: TObject); {val1 と val2 は 2 つの入力整数を格納します。 2 つの数値の積} FTooBig : TNotifyEvent; {イベント ハンドラー FTooBig へのポインターを定義} {プライベート宣言} public {パブリック宣言 }publishedproperty OnTooBig:TNotifyevent read FTooBig write FTooBig;{イベントの定義} end;var Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);begin val1 := StrToInt(Edit1.Text); = StrToInt(Edit2.Text); if(val1< 100)and(val2< 100) then begin res := val1*val2; Edit3.Text := IntToStr(res); end else if assign(FTooBig) then OnTooBig(Self);end;procedure TForm1.TooBig1(Sender: TObject) );beginapplication.MessageBox('大きすぎます','テスト イベント! ',MB_OK);end;プロシージャTForm1.FormCreate(Sender: TObject);begin val1:=1; val2:=1; FTooBig := TooBig1;{イベント ハンドラー ポインターがイベント ハンドラーを指すようにします}end;end。