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
に設定すると、すべてのアクションのクライアントを無効にします。
たとえば、OnExecute イベント ハンドラがアクションに対して定義されていない場合に、FMX.Forms.TApplication.UpdateAction がどのように DisableIfNoHandler を使用して、Enabled を False
に設定するかを定義しているか確認してみてください。
たとえば、DisableIfNoHandler を False
に設定すると、サブメニューの管理に便利です。 この場合、メイン メニュー上のコマンドにポインタを置くと、サブメニューが開くため、OnExecute イベント ハンドラは必要ありません。 そして、DisableIfNoHandler が True
の場合は、このメイン メニュー コマンドは無効になり、サブメニューは開かなくなります。 そのような場合、FMX.Controls.TControlAction や Vcl.Controls.TControlAction のタイプのアクションを使用すると便利です。これらクラスのオブジェクトでは、DisableIfNoHandler の値をデフォルトで False
に設定されています。