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

panel如何控制數個speedbutton?

答題得分者是:herbert2
bybreak
一般會員


發表:5
回覆:10
積分:8
註冊:2008-05-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-05-23 17:30:30 IP:61.218.xxx.xxx 訂閱
我照書上做了一個控制畫筆的工具列,(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.有別的方法可以達成相同的目的嗎?
編輯記錄
bybreak 重新編輯於 2008-05-23 17:32:00, 註解 無‧
bybreak 重新編輯於 2008-05-23 17:38:33, 註解 無‧
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-05-26 02:18:54 IP:211.72.xxx.xxx 訂閱
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-05-27 09:34:16 IP:61.218.xxx.xxx 訂閱
我用共用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, 註解 無‧
系統時間:2024-04-27 8:23:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!