怎麼得知是哪一個物件的觸發事件?? |
|
Littleasss
一般會員 發表:12 回覆:6 積分:3 註冊:2006-08-17 發送簡訊給我 |
我是自己new一個物件比如說是TButton *button[100],先把這100個button new出來,並且加上一行 "button[i]->OnClick = Form1->button_click"再多寫一個觸發事件,在.h檔裡加 void __fastcall button_click(TObject *Sender); 在.cpp檔裡加void __fastcall Form1::button_click(TObject *Sender) { .......} 就在.cpp的這個觸發事件裡面我要怎麼得知是哪一個button被按下的呢?因為每個button的觸發都是在同一個副程式裡面。
|
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
Ans: 可加一行 button[i]->Tag = i; 然後於 Form1->button_click() 設 int ixBtn = ((TButton *)Sender)->Tag; 以 ixBtn 便可判斷是按下那個 button.
|
Littleasss
一般會員 發表:12 回覆:6 積分:3 註冊:2006-08-17 發送簡訊給我 |
|
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
Ans: Sender 是指呼叫這個 Function 之 TObject. 因設計者已知 button_click() 是專供 button[0]....button[99] 呼叫的, 故可以直接轉型為 TButton, 否則尚須 用 try { some expr; } cath (...) { Error Procedure expr; } 的方式防止 Error. 或用 if (Sender->ClassnameIs("TButton")) { some expr; } 等方式判定 Sender 是 那一種元件. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |