TCustomForm.UpdateActionsを試してみる

「DEKOのざつだん。」の11/10/10の記事TCustomForm.UpdateActionsの紹介がありました。
おもしろそうだったので、試してみました。

フォームにメニュー、ツールバー、チェックボックスを2つ配置します。
メニュー、ツールバーのボタン、チェックボックスの1つにActionプロパティにAction1を指定します。

UpdateActionsメソッドをオーバーライトします。

下側のチェックボックス(CheckBox1)のチェックの状態によって、Action1のEnabledプロパティを変更するようにします。

Unit1.h

class TForm1 : public TForm
{
...
protected:
  virtual void __fastcall UpdateActions(void);
};

Unit1.cpp

void __fastcall TForm1::UpdateActions(void)
{
  Action1->Enabled = CheckBox1->Checked;
}

CheckBox1をチェックすると、Action1にひも付いているメニュー、ツールバーのボタン、チェックボックスの状態が更新されます。

もちろんCheckBox1のOnClickイベントに記述しても同じことができます。
ですが、UpdateActionsメソッドにアクションの更新処理をまとめて記述することで、ソースコードの見通しが良くなりそうだと思いました。

チェックボックスをもう一つ追加したところ。
アクションの状態はUpdateActionsメソッドの中で一括管理。

void __fastcall TForm1::UpdateActions(void)
{
  Action1->Checked = CheckBox1->Checked;
  Action2->Checked = CheckBox4->Checked;
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください