|
|
||||
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"; /*処理があればコーディング*/ } } //------------------------------------------------------------------- |