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

如何讓 同樣的 VCL 元件,有相同的動作?

答題得分者是:wjhsu
Eigen
初階會員


發表:19
回覆:36
積分:26
註冊:2002-12-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-01-10 17:02:05 IP:210.202.xxx.xxx 訂閱
如何讓 同樣的 VCL 元件,有相同的動作?
ex: 我的 form 上各有 9個 Label 9個 button 9個 Edit 元件
現在一個對一個
Label1 - Button1 - Edit1
Label2 - Button2 - Edit2
Label3 - Button3 - Edit3
Label4 - Button4 - Edit4
Label5 - Button5 - Edit5
Label6 - Button6 - Edit6
Label7 - Button7 - Edit7
Label8 - Button8 - Edit8
Label9 - Button9 - Edit9

我畫一個簡單的例子:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(Labe1->Caption=="Build"){
Labe1->Caption ="Load";
Edit1->Text ="Please Input file name";
}
else{
Labe1->Caption ="Build";
Edit1->Text ="";
}
}

大概是像這樣, 按下 button1 會影響到 Label1 及 Edit1
如果只有幾組,我可以copy paste modify
問題是現在有幾十組這樣的組合,copy paste modify 就非常糟,而且一但要修改,就得全部改
有沒有比較好的方法? ex: Frame (這個我知道)
wjhsu
初階會員


發表:9
回覆:32
積分:48
註冊:2004-06-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-01-11 09:26:28 IP:61.219.xxx.xxx 訂閱
請將所有Button的"OnClick"事件指向下面的函式, 

[code cpp]
//---------------------------------------------------------------------------
// Button->Name的格式 : "ButtonNN"
// Label->Name的格式 : "LabelNN"
// Edit->Name的格式 : "EditNN"
// 其中 NN要一樣, 例如: Button3,Label3,Edit3....
//----------------------------------------------------------------------------
void __fastcall TForm1::OnButtonClick(TObject *Sender)
{
TButton *Button = (TButton*)Sender;
TLabel *Label;
TEdit *Edit;

AnsiString index = Button->Name.SubString(7,Button->Name.Length()-6);

Label =(TLabel*) FindComponent("Label" index);
Edit =(TEdit*) FindComponent("Edit" index);

if (Label)
{
if(Label->Caption=="Build")
{
Label->Caption ="Load";
if (Edit) Edit->Text ="Please Input file name";
}
else
{
Label->Caption ="Build";
if (Edit) Edit->Text ="";
}
}
}

[/code]
編輯記錄
wjhsu 重新編輯於 2008-01-11 09:28:36, 註解 無‧
wjhsu 重新編輯於 2008-01-11 09:31:06, 註解 奇怪, Click會變成--> forbidden, 請自行取代‧
Eigen
初階會員


發表:19
回覆:36
積分:26
註冊:2002-12-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-01-11 17:59:08 IP:210.202.xxx.xxx 訂閱
非常感謝,原來 Sender 這是這樣用,我了解了
系統時間:2024-05-05 18:39:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!