プロパティとしてのイベント

提供: RAD Studio
移動先: 案内検索

イベントとは何か への移動


コンポーネントでは、プロパティを使用してイベントを実装しています。他のほとんどのプロパティとは異なり、イベントでは、メソッドを使用して read 部と write 部を実装するわけではありません。代わりに、イベント プロパティでは、そのプロパティと同じ型の private クラス フィールドを使用します。

慣例的に、このフィールドの名前は、プロパティの名前の先頭に文字 F を付けたものになります。たとえば、OnClick メソッドのポインタは、TNotifyEvent 型の FOnClick というフィールドに格納されます。OnClick イベント プロパティの宣言は次のようになります。

type
  TControl = class(TComponent)
  private
    FOnClick: TNotifyEvent;    { declare a field to hold the method pointer }
    .
    .
    .
  protected
    property OnClick: TNotifyEvent read FOnClick write FOnClick;
  end;
class PACKAGE TControl : public TComponent
{
private:
    TNotifyEvent FOnClick;
  .
  .
  .
protected:
    __property TNotifyEvent OnClick = {read=FOnClick, write=FOnClick};
  .
  .
  .
};

TNotifyEvent などのイベント型については、次のセクション「メソッド ポインタ型としてのイベント型」を参照してください。

他のどのようなプロパティでも同様ですが、イベントの値を実行時に設定または変更することができます。ただし、イベントをプロパティとする主な利点は、コンポーネント ユーザーが[オブジェクト インスペクタ]を使って、設計時にイベントにハンドラを割り当てることができることです。

関連項目