2018年6月3日 星期日

BCB 筆記6 (Sender)

說來慚愧,但我很後面才知道這東西
BCB 設計按鈕不外乎 TButton TBitBtn TSpeedButton

但按鈕通常邏輯差不多,只是因為傳的值不一樣而用不同 Button
然後程式碼變成這樣


void __fastcall TMainForm::TButton1Click(TObject *Sender)
{
    MyButtonFunction("TButton1");
}

void __fastcall TMainForm::TButton2Click(TObject *Sender)
{

    MyButtonFunction("TButton2");
}

void __fastcall TMainForm::TButton3Click(TObject *Sender)
{

    MyButtonFunction("TButton3");
}
但你其實可以

void __fastcall TMainForm::ButtonClick(TObject *Sender)
{
    TControl *btn = dynamic_cast<TControl *>(Sender);
    MyButtonFunction(btn->Name);
}
然後再去修改三個 Button 的 OnClick 指向 ButtonClick
這裡為什麼用 TControl 因為一次就可以相容三種 Button
用了半年BCB才知道...

0 意見:

張貼留言

Popular Posts