panel如何控制數個speedbutton? |
答題得分者是:herbert2
|
bybreak
一般會員 發表:5 回覆:10 積分:8 註冊:2008-05-23 發送簡訊給我 |
我照書上做了一個控制畫筆的工具列,(panel上放了數個speedbutton)
書上的控制函式是: void __fascall TForm1::panel1(TObject *Sender) { if(Sender == SolidPen) Image->Canvas->Pen->Style=psSolid; else if(Sender == DashPen) Image->Canvas->Pen->Style=psDashPen . . . } 但這樣compiler會失敗,說是TForm1內沒有panel1這個物件。 於是我改成void __fascall TForm1::panel1Click(TObject *Sender) compiler過了,但是功能鈕沒有作用... 請問 1.要怎麼像書上的函式那樣,不用事件觸發也可以知道panel上的哪一個speedbutton被按下? 2.有別的方法可以達成相同的目的嗎? |
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
SpeedButton 屬於無焦點之元件 (不能 SetFocus), 故 Panel 之 Click Event 根本與 SpeedButton 之 Click Event 無關.
您應為各個 SpeedButton 各設一個 Click Event 去處理各自要做的工作. 也可令各 SpeedButton 共用一個 Click Event, 但若如此, 最好各 SpeedButton->Tag 設不同值, 以便用 ((TSpeedButton *)Sender)->Tag 判斷按下何鍵. |
bybreak
一般會員 發表:5 回覆:10 積分:8 註冊:2008-05-23 發送簡訊給我 |
我用共用Click Event判斷名稱的方式做出來了~
謝謝你的回答喔~ ===================引 用 herbert2 文 章=================== SpeedButton 屬於無焦點之元件 (不能 SetFocus), 故 Panel 之 Click Event 根本與 SpeedButton 之 Click Event 無關. 您應為各個 SpeedButton 各設一個 Click Event 去處理各自要做的工作. 也可令各 SpeedButton 共用一個 Click Event, 但若如此, 最好各 SpeedButton->Tag 設不同值, 以便用 ((TSpeedButton *)Sender)->Tag 判斷按下何鍵.
編輯記錄
bybreak 重新編輯於 2008-06-04 14:45:48, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |