介面設計最常使用的元件就是按鈕,
在BCB底下有多種不同功用的按鈕,Button, BitBtn, SpeedButton...等。
我們常常要撰寫當按下某個按鈕執行某個事件的功能,
BCB能方便地在設計者雙擊按鈕後,產生一個Click事件,
以便於撰寫對應的功能。
一個按鈕對應一個Click事件是很合理且直覺的作法,
若今天有10個按鈕則會有10個Click事件(廢話....),
但如果這10個Click事件底下所執行的動作很簡短,
並且有一定的相關性的時,如"計算機按下數字按鈕顯示於螢幕上",
則可以選擇更Smart且簡化程式的方式,如下說明:
1. 於Form上建立5個Button及1個Edit,如下圖所示
2. 分別為5個Button的Tag屬性設立從1到5
3. 雙擊btn1,在事件中寫入底下程式
- void __fastcall TFormMain::btn1Click(TObject *Sender)
- {
- TSpeedButton *tempBtn;
- tempBtn = (TSpeedButton *)Sender;
- switch(tempBtn->Tag)
- {
- case 1:
- // Tag 1 action
- edt_show->Text = tempBtn->Caption;
- break;
- case 2:
- // Tag 2 action
- edt_show->Text = tempBtn->Caption;
- break;
- case 3:
- // Tag 3 action
- edt_show->Text = tempBtn->Caption;
- break;
- case 4:
- // Tag 4 action
- edt_show->Text = tempBtn->Caption;
- break;
- case 5:
- // Tag 5 action
- edt_show->Text = tempBtn->Caption;
- break;
- default:
- break;
- }
- }
5. 完成,下班!!