アプリケーションイベントを作成する

例えばアプリケーションが非アクティブ状態になった時のイベントを処理するにはどうしたらいいのでしょう?Formの Deactiveイベントはアプリケーション非アクティブ時は反応しません。このような時、アプリケーションクラス TApplication のイベントを利用します。Delphi 5 以前の TApplication は他のビジュアルなコンポーネントのようにオブジェクトインスペクタに表示されないので イベントを記述するにはいちから記述しなければいけません。
以下の例はアプリケーションがアクティブになったときに発生する AppOnActivate イベントをアプリケーションに追加したものです。なお、Delphi 6 からは Application コンポーネントが用意されているのでそれを利用します。

■ アプリケーションイベント作成例
 type 
   TForm1  =  class(Tform);
     procedure FormCreate(Sender: TObject);
     procedure AppDeactivate(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;
 
 var
   Form1  :  TForm1;

 implementation;

 { $R *.DFM }

 procedure TForm1.FormCreate(Sender: TObject);
 begin
  { TApplicationのOnDeacitvateにAppDeactivate手続きを関連付ける }
   Application.OnDeactivate  :=  AppDeactivate;
 end;

 { この手続きは手書きします。 }
 procedure TForm1.AppDeactivate(Sender: TObject);
 begin
   Memo1.Lines.Add('非アクティブ状態になりました。');
 end;