System.Actions.TContainedAction.DisableIfNoHandler
Delphi
property DisableIfNoHandler: Boolean read FDisableIfNoHandler write FDisableIfNoHandler default True;
C++
__property bool DisableIfNoHandler = {read=FDisableIfNoHandler, write=FDisableIfNoHandler, default=1};
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
property | public | System.Actions.pas System.Actions.hpp |
System.Actions | TContainedAction |
説明
OnExecute イベント ハンドラが見つからない場合に、アクションのクライアントを無効にするべきかどうかを示します。
DisableIfNoHandler は、OnExecute イベント ハンドラがアクションに対して設定されていない場合に、アクションの Enabled プロパティを False に設定するべきかどうかを定義します。Enabled を False に設定すると、すべてのアクションのクライアントを無効にすることができます。
たとえば、FMX.Forms.TApplication.UpdateAction が DisableIfNoHandler を使用して、どのように OnExecute イベント ハンドラがアクションに対して定義されていないときに、Enabled を False に設定するかを定義しているかを、参照してください。
たとえば、DisableIfNoHandler を False に設定すると、サブメニューを管理する際に便利です。この場合、サブメニューを開くためのメイン メニュー上のコマンドをポイントした際の、OnExecute イベント ハンドラがいらなくなります。そして、DisableIfNoHandler が True の場合は、このメイン メニュー コマンドは無効になり、そのサブメニューが開かれません。 このような場合には、FMX.Controls.TControlAction や Vcl.Controls.TControlAction 型のアクションを使用すると便利でしょう。これらのクラスのオブジェクトは、デフォルトで、DisableIfNoHandler の値を False に設定します。
ヒント: このプロパティを FMX.ActnList.TCustomAction.Supported と比較してください。