アクション コンポーネントの記述
アクション リストの使用 への移動
定義済みアクション クラスを独自に作成することもできます。独自のアクション クラスを作成すると、オブジェクトの特定のターゲット クラスに対して実行する機能を組み込むことができます。そのあとは、定義済みアクション クラスを使用する場合と同じように、カスタム アクションを使用できます。つまり、アクションが自分自身を認識しターゲット クラスに適用できる場合、プログラマは単にクライアント コントロールにアクションを割り当てるだけでよく、イベント ハンドラを記述しなくても、そのアクションがターゲットに作用することができます。
コンポーネント開発者は、StdActns ユニットおよび DBActns ユニット内のクラスを独自アクション クラスの派生のサンプルとして使用して、特定のコントロールやコンポーネントに固有の動作を実装することができます。これらの特化されたアクションの基底クラス(TEditAction や TWindowAction など)では、一般に、HandlesTarget や UpdateTarget などのメソッドをオーバーライドして、アクションのターゲットをオブジェクトの特定のクラスに限定します。下位クラスでは、一般に、特化されたタスクを実行するように ExecuteTarget をオーバーライドします。これらのメソッドについて、次の表で説明します。
特定のアクションの基底クラスによりオーバーライドされるメソッド
メソッド | 説明 |
---|---|
HandlesTarget |
アクションにリンクされているオブジェクト(ツール ボタンやメニュー項目など)をユーザーが起動すると、自動的に呼び出されます。HandlesTarget メソッドは、 |
UpdateTarget |
アクションが現在の状態に応じて自分自身を更新できるように、アプリケーションがアイドル状態になっているときに自動的に呼び出されます。OnUpdateAction の代わりに使用します。詳細は、「アクションの更新」を参照。 |
ExecuteTarget |
OnExecute の代わりにユーザー アクションに応答してアクションが起動されたとき(たとえば、このアクションにリンクされているメニュー項目やツール ボタンをユーザーが選択したりクリックしたときなど)に、自動的に呼び出されます。詳細は、「アクションの起動時に起こること」を参照。 |
独自のアクション クラスを作成する場合は、以下の点を理解しておくことが大切です。