ホーム
|
アプリケーション | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


Tips >   

PopupMenu の Item をクリアして再設定 

更新 : 2009/12/04

 



解説:
アプリケーション動作中、オプションの設定などで、メニューをカスタマイズしたい時があります。
他の場面でもメニューを動的に作成、削除したいケースはあるでしょう。
ここでは、PopupMenu から一度消したアイテムを再設定する方法をみていきます。

使用例:
以下は、PopupMenu からアイテムを削除して、再び設定し直す例です。

準備としては PopupMenu, Button 二つを適当に配置します。
PopupMenu には、TestItem(Caption="Test") を追加して、Form1 の PopupMenu プロパティ に PopupMenu1 を設定
しておきます

まず、TestItem のクリックで処理するイベントハンドラ TestClick を作成します(宣言を "Unit1.h" の private に追加しておいてください)。
これは "test" メッセージを表示するだけのイベントです。
このイベントを TestItem の OnClick に記述します。

Button1 をクリックすると、PopupMenu のアイテムが消え、Button2 の OnClick で再設定されます。

TMenuItem は親メニューが解放されるときに自動的に解放されますので、FormDestroy 等で解放しなくても大丈夫です。

実際には、もっと複雑なメニューを消したり、追加したりしますので、練習しておいてください。

//-------------------------------------------------------------------
void __fastcall TForm1::TestClick(TObject *Sender)
{
    ShowMessage("test");
}
//-------------------------------------------------------------------
void __fastcall TForm1::TestItemClick(TObject *Sender)
{
    TestClick(Sender);
}
//-------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    // 何かの都合でメニューを変えた場合(今回はアイテムを消す)
    PopupMenu1->Items->Delete(0);
}
//-------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    // 再設定
    TMenuItem *item = new TMenuItem(this);
    item->Caption = "Test";
    item->OnClick = TestClick;
    PopupMenu1->Items->Add(item);
}
//-------------------------------------------------------------------



[ ホーム | ページトップ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.