全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1283
推到 Plurk!
推到 Facebook!

動態物件 Event 的 Assign

答題得分者是:Skyer
yhk
一般會員


發表:11
回覆:7
積分:3
註冊:2002-10-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-11-20 11:31:24 IP:61.220.xxx.xxx 未訂閱
hi everybidy,    我有一個問題就是...    我用動態產生物件的方式做了比如說 20 個 Button... 我想讓每一個 Button 對應到同一個 OnClick  Event 物件    可以進一步區分是哪一個 Button 按的.. 我應該在 assign Click 物件的時候作任何屬性的 assign 以利區分嗎? TObject *Sender 這個傳入的參數不是就代表觸發的物件嗎? 那我可以用 Sender 來取得我預先設定的 Tag 來區分是哪一個 Button 嗎?    TBitBtn *btnTest[20]; for(i=0;i<20;i ) { btnTest[i] = new TBitBtn(this); btnTest[i]->TestClick; } void __fastcall TfrmTest::TestClickClick(TObject *Sender) { ShowMessage("This is Button xx Speaking..."); // ... } 謝謝大家的時間, ^____^
Skyer
高階會員


發表:43
回覆:111
積分:120
註冊:2002-04-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-11-20 11:53:40 IP:61.217.xxx.xxx 未訂閱
我自己會在 Create Button 時,指定 Tag 這個 Property
  for (i=0; i<20;   i) {
    BtnArray[i] = new TButton(this);
    BtnArray[i]->Parent = Self;
    BtnArray[i]->Tag = i;
       ...
       ...
  }
這樣的話,在 Event 裡就可以抓出來了.
void __fastcall TfrmTest::TestClickClick(TObject *Sender)
{
  TButton *btn = dynamic_case(Sender);
  ShowMessage("This is Button "   IntToStr(btn->Tag + 1)   " Speaking...");
  // ... 
}
PS: 加號顯示不出來,所以我用全形表示.. -- Regards, Skyer
------
--
Regards,
Skyer
yhk
一般會員


發表:11
回覆:7
積分:3
註冊:2002-10-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-11-20 13:43:40 IP:61.220.xxx.xxx 未訂閱
void __fastcall TfrmTest::TestClickClick(TObject *Sender) { TLabel *lbl = dynamic_cast (Sender); ... } 我試了一個 Label 的例子, IT work, thank you, SKyer,
系統時間:2024-07-06 8:04:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!