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

多個Image如何共用同一個PopMenu?

答題得分者是:RaynorPao
zenjohn
一般會員


發表:5
回覆:16
積分:4
註冊:2002-12-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-26 09:26:35 IP:211.75.xxx.xxx 未訂閱
各位先進您好:    我有二十個Image,一模一樣,從Image1...到Image20, 另外有一個PopMenu,裡面有一個MenuItem,做一件事, 我希望這二十個Image裡可以共用PopMenu,可是我在 MenuItem的事件中無法分辨出現在呼叫的是那一個Image? 我試過用Sender,用Owner,可是還是無法辨別出,請問 是不是我的想法不對?或是我必須用二十個PopMenu搭配 二十個Image呢?謝謝您。
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-26 09:31:52 IP:203.75.xxx.xxx 未訂閱
TImage 中有一個 Tag 的屬性, 你可以用它來存 image 的編號, 所以就可以知道是那個 image 發出的了. Jesse Chan
------
Jesse Chan
zenjohn
一般會員


發表:5
回覆:16
積分:4
註冊:2002-12-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-26 14:02:40 IP:211.75.xxx.xxx 未訂閱
謝謝版主大人的回應,但可能是我之前的敍述不明確,才產生誤會,我補充說明一下。 我有20個Image,每個Image的PopMenu屬性都指向PopMenu1物件(因為我希望20個Image共用一個PopMenu)。 其中PopMenu1裡有一個MenuItem,名稱為N1,我在其OnClick事件寫了以下的程式碼:
 
void __fastcall TControlForm::N1Click(TObject *Sender)
{
  TPopupMenu *pop = (TPopupMenu *)Sender;
  ShowMessage(pop->Name);      // 希望可以做到
  switch (i) {  // 呼叫的是第i個Image
    case 1: ... 做第一個Image應做的事
    case 2: ... 做第二個Image應做的事
    ...
    ...
    case 20: ... 做第二十個Image應做的事
  }
}
可是我不曉得在以上的程式中,如何去辨別呼叫我的是第幾個Image? 上面的Sender抓到的是N1,請問該怎麼做呢?謝謝。
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-26 15:04:54 IP:203.73.xxx.xxx 未訂閱
引言: 謝謝版主大人的回應,但可能是我之前的敍述不明確,才產生誤會,我補充說明一下。 我有20個Image,每個Image的PopMenu屬性都指向PopMenu1物件(因為我希望20個Image共用一個PopMenu)。 其中PopMenu1裡有一個MenuItem,名稱為N1,我在其OnClick事件寫了以下的程式碼:
 
void __fastcall TControlForm::N1Click(TObject *Sender)
{
//  TPopupMenu *pop = (TPopupMenu *)Sender;
//  ShowMessage(pop->Name);
  ShowMessage(PopupMenu1->PopupComponent->Name);
  ShowMessage(PopupMenu1->PopupComponent->Tag);
  int i=PopupMenu1->PopupComponent->Tag;      // 希望可以做到
  switch (i) {  // 呼叫的是第i個Image
    case 1: ... 做第一個Image應做的事
    case 2: ... 做第二個Image應做的事
    ...
    ...
    case 20: ... 做第二十個Image應做的事
  }
}
可是我不曉得在以上的程式中,如何去辨別呼叫我的是第幾個Image? 上面的Sender抓到的是N1,請問該怎麼做呢?謝謝。
zenjohn 你好: 試試看~~改成上面紅色的部分 --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
zenjohn
一般會員


發表:5
回覆:16
積分:4
註冊:2002-12-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-26 16:55:08 IP:211.75.xxx.xxx 未訂閱
真的可以了,我也曾找過Help,可是卻沒有發現這個property, 實在佩服Mr. RaynorPao的功力...  > 因為不能同時給分,只好將分數獻給
WhiteFang
一般會員


發表:9
回覆:23
積分:6
註冊:2002-11-22

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-02 17:58:06 IP:163.28.xxx.xxx 未訂閱
void __fastcall TForm1::SaveImage1Click(TObject *Sender) { TImage *callingimg= (TImage *)PopupMenu1->PopupComponent; if (SPD->Execute()) { callingimg->Picture->SaveToFile(SPD->FileName); } } 這是我昨天試出來的方法....滿好用的,推薦給您! 這是個存圖的範例!愛幾個TImage共用都可以!
系統時間:2024-05-05 0:37:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!