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

關於動態產生元件的觸發事件問題

尚未結案
a8960905
一般會員


發表:30
回覆:47
積分:20
註冊:2003-09-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-12 07:07:34 IP:24.159.xxx.xxx 未訂閱
各位大大好, 小弟最近寫程式碰到了一個問題 我產生了x個Timage的元件 bmp1[x]=new TImage(this); bmp1[x]->Parent = Form1->ScrollBox1; bmp1[x]->Height = (Form1->wh); bmp1[x]->Width = (Form1->wh); bmp1[x]->Top = (Form1->wh*iy2); bmp1[x]->Left = (Form1->wh*ix2); bmp1[x]->MyBtnClick; 然後 //--------------------------------------------------------------------------- .h void __fastcall MyBtnClick(TObject *Sender); //--------------------------------------------------------------------------- void __fastcall TNew_Map::MyBtnClick(TObject *Sender) { 在此處我想要讓被Click到的那個Image去Load一張圖,但是不知道到要怎麼去抓取是哪個Image被點到 } //--------------------------------------------------------------------------- 請各位大大幫忙一下囉,謝謝啦~
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-12 08:38:31 IP:61.218.xxx.xxx 未訂閱
引言: 各位大大好, 小弟最近寫程式碰到了一個問題 我產生了x個Timage的元件 bmp1[x]=new TImage(this); bmp1[x]->Parent = Form1->ScrollBox1; bmp1[x]->Height = (Form1->wh); bmp1[x]->Width = (Form1->wh); bmp1[x]->Top = (Form1->wh*iy2); bmp1[x]->Left = (Form1->wh*ix2); bmp1[x]->MyBtnClick; 然後 //--------------------------------------------------------------------------- .h void __fastcall MyBtnClick(TObject *Sender); //--------------------------------------------------------------------------- void __fastcall TNew_Map::MyBtnClick(TObject *Sender) { 在此處我想要讓被Click到的那個Image去Load一張圖,但是不知道到要怎麼去抓取是哪個Image被點到 } //--------------------------------------------------------------------------- 請各位大大幫忙一下囉,謝謝啦~
*Sender 它就是了
a8960905
一般會員


發表:30
回覆:47
積分:20
註冊:2003-09-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-12 09:51:59 IP:24.159.xxx.xxx 未訂閱
引言: *Sender 它就是了
jeffreck大大你好 我有試過這樣作但是他是TObject我是需要使用TImage的一些屬性 void __fastcall TNew_Map::MyBtnClick(TObject *Sender) 因為我想使用的是TImage被click以後會 被點到的image->Picture->LoadFromFile("xxx.jpg"); 我之前試*Sender->Picture->LoadFromFile("xxx.jpg"); 出現這樣的錯誤訊息: [C Error] Unit2.cpp(79): E2316 'Picture' is not a member of 'TObject' 我有試過把 void __fastcall TNew_Map::MyBtnClick(TObject *Sender) 的TObject改成TImage 卻在bmp1[total]->MyBtnClick; 出現了以下的錯誤訊息 : [C Error] Unit2.cpp(46): E2034 Cannot convert 'void (_fastcall * (_closure )(TImage *))(TImage *)' to 'void (_fastcall * (_closure )(TObject *))(TObject *)' 不知道有什麼辦法呢? 謝謝囉
segat80
一般會員


發表:5
回覆:24
積分:15
註冊:2003-02-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-12 10:05:43 IP:203.69.xxx.xxx 未訂閱
這個時候Sender的型態是TObject *,當然無法像image一樣操作, 所以請將Sender轉態成TImage就可以了 ((>>
gac
初階會員


發表:2
回覆:28
積分:26
註冊:2004-08-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-03-14 20:38:44 IP:220.130.xxx.xxx 未訂閱
引言: void __fastcall TNew_Map::MyBtnClick(TObject *Sender) { 在此處我想要讓被Click到的那個Image去Load一張圖,但是不知道到要怎麼去抓取是哪個Image被點到 }
只要在開頭加上一行:
TImage * oMyImage = (TImage *)Sender;
 
強制將 Sender 當成 TImage 物件,指定給 *oMyImage,之後,oMyImage 就可以當作被點到那個 Image 正常使用了!! 我..........還很嫩!
------
我..........還很嫩!
a8960905
一般會員


發表:30
回覆:47
積分:20
註冊:2003-09-19

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-03-15 09:16:34 IP:24.159.xxx.xxx 未訂閱
謝謝各位大大的回覆 小弟已經會了,感激~ 小弟目前正在寫一個遊戲 完成了再上來跟大家分享吧
系統時間:2024-05-03 9:34:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!