線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:806
推到 Plurk!
推到 Facebook!

請問.如何取得呼叫該event的函數名稱

尚未結案
0936187122
一般會員


發表:8
回覆:7
積分:3
註冊:2004-03-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-18 23:53:27 IP:220.130.xxx.xxx 未訂閱
因為動態建立了一些 DdeClientItem, 都指向這個 event 處理, 但需要由 DdeClientItem 來做各別處理, 請教如何取得原呼叫的函數名稱呢?    void __fastcall TFormDdeDecode::DdeClientItem1Change(TObject *Sender) {  String _s=((TDdeClientItem *)Sender)->Text;  Memo->Lines->Add(_s); // 取得送進來的值 // 如何取得呼叫的函數名, 如 "DdeClientItem1" // 或例子中的 "DDEITEM1"~"10" }    void __fastcall TFormDdeDecode::FormCreate(TObject *Sender) {  for(int i=0;i<10;i ) { __ddeitem[i]=new TDdeClientItem(this); __ddeitem[i]->DdeConv=__ddeconv; __ddeitem[i]->DdeItem="DDEITEM" IntToStr(i); } }
bass15
高階會員


發表:24
回覆:171
積分:119
註冊:2003-10-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-19 10:43:31 IP:61.66.xxx.xxx 未訂閱
void __fastcall TFormDdeDecode::DdeClientItem1Change(TObject *Sender)
{
  String _s=((TDdeClientItem *)Sender)->Text;
  String _Name=((TDdeClientItem *)Sender)->Name;
  Memo->Lines->Add(_s); // 取得送進來的值
// 如何取得呼叫的函數名, 如 "DdeClientItem1"
// 或例子中的 "DDEITEM1"~"10"
}
 
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-19 10:47:08 IP:211.76.xxx.xxx 未訂閱
0936187122你好:    試看看下面的CODE能不能作用,還有在Sender的型別轉換上表明用dynamic_cast會比較安全。
void __fastcall TFormDdeDecode::DdeClientItem1Change(TObject *Sender)
{
TDdeClientItem* Dde=(dynamic_cast(Sender));
//你要的東西
AnsiString Item = Dde->DdeItem;
}
0936187122
一般會員


發表:8
回覆:7
積分:3
註冊:2004-03-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-25 12:12:12 IP:220.130.xxx.xxx 未訂閱
感謝2位解答, 問題已經解決了, 另在文中又學到 TDdeClientItem* Dde=(dynamic_cast(Sender)); 這樣的語法, 感謝呢 (>"< 一時不查, bass15 的答案是對的) 另有關 ddeclient 我另開一個主題, 也請2位有興趣解答一下
系統時間:2024-06-02 5:39:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!