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

CBアプリ工房


Tips >   

Sender と Tag でイベントを振り分ける 

更新 : 2009/12/06

 



解説:
Sender パラメータはイベントハンドラを呼び出したコンポーネントを区別するための情報が含まれたポインタです。型キャストして適当なコンポーネントに置き換えて使えます。
コンポーネントがたくさんあって、同じ処理をさせたい場合などに利用すると便利です。特に Tag プロパティと組み合わせるといろいろに使えます。

使用例:
以下の例では、Label コンポーネントの Tag プロパティを利用して、どの
Label がクリックされたかを判定しています。
Caption に文字列を代入して表示させていますが、必要な処理がある場合はコーディングを追加してください。同じ
コンポーネントが複数あるような時使えるテクニックです。

準備として、Label を四つ配置して、Tag を 1〜4 に設定しておきます。
各 Label の OnClick イベントに LabelClick を割り当てます。

任意の Label をクリックすると Tag に応じた文字列が Caption に表示されます。

//-------------------------------------------------------------------
void __fastcall TForm1::LabelClick(TObject *Sender)
{
    TLabel *lbl;
    lbl = dynamic_cast<TLabel *>(Sender);

    switch ( lbl->Tag ) {
    case 1:
        lbl->Caption = "a";
        /*処理があればコーディング*/
        break;
    case 2:
        lbl->Caption = "b";
        /*処理があればコーディング*/
        break;
    case 3:
        lbl->Caption = "c";
        /*処理があればコーディング*/
        break;
    case 4:
        lbl->Caption = "d";
        /*処理があればコーディング*/
    }
}
//-------------------------------------------------------------------



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