如何讓 同樣的 VCL 元件,有相同的動作? |
答題得分者是:wjhsu
|
Eigen
初階會員 發表:19 回覆:36 積分:26 註冊:2002-12-05 發送簡訊給我 |
如何讓 同樣的 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 發送簡訊給我 |
請將所有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] |
Eigen
初階會員 發表:19 回覆:36 積分:26 註冊:2002-12-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |