如何创建点击四个按钮的任意的事件,即避免将相同的代码粘贴到每个按钮的OnClick事件中?我在Google中找到的唯一一件事是它有(?)pattern(多播)。如果它真的存在,你能不能给我一些例子,如果没有,你可以做一个(草案)吗?
答案 0 :(得分:2)
您可以为所有四个按钮OnClick
事件分配相同的处理程序。事件的Sender
参数将告诉您每次触发事件的按钮。例如:
void __fastcall TMyForm::ButtonClick(TObject *Sender)
{
TButton *btn = static_cast<TButton*>(Sender);
ShowMessage("You clicked on " + btn->Name);
}
如果您的代码需要根据单击的按钮进行操作,则可以使用Tag
属性进行区分,例如:
void __fastcall TMyForm::ButtonClick(TObject *Sender)
{
TButton *btn = static_cast<TButton*>(Sender);
switch (btn->Tag)
{
...
}
}
答案 1 :(得分:0)
假设已经分配了Button1-&gt; OnClick:
Button2->OnClick = Button1->OnClick
Button3->OnClick = Button1->OnClick
Button4->OnClick = Button1->OnClick