假设我有 1 个主要形式。主窗体包含两个按钮(打开和关闭),单击每个按钮会创建一个以主窗体作为父/所有者的框架。该框架包含 3 个按钮(添加、编辑和删除),示例代码如下:
框架代码:
unit UntFrame;
...
type
TFmeMain = class(TFrame)
procedure AddClick(Sender: TObject);
procedure EditClick(Sender: TObject);
procedure DeleteClick(Sender: TObject);
private ...
public ...
end;
implementation
{$R *.dfm}
uses ...
procedure TFmeMain.AddClick(Sender: TObject);
begin
AddBtnClick;
end;
procedure TFmeMain.EditClick(Sender: TObject);
begin
EditBtnClick;
end;
procedure TFmeMain.DeleteClick(Sender: TObject);
begin
DelBtnClick;
end;
end.
框架使用的 3 种方法(AddBtnClick、EditBtnClick和DelBtnClick)存在于两个不同的单元上,即 UntOpen 和 UntClose ,但根据创建的框架不同,做的事情也不同。当单击打开按钮时,框架应使用 UntOpen,当单击主菜单中的关闭按钮时,应使用 UntClose。
UntOpen 代码:
unit UntOpen;
...
procedure AddBtnClick;
procedure EditBtnClick;
procedure DelBtnClick;
implementation
procedure AddBtnClick;
begin
ShowMessage('add open');
end;
procedure EditBtnClick;
begin
ShowMessage('edit open');
end;
procedure DelBtnClick;
begin
ShowMessage('delete open');
end;
end.
取消关闭代码:
unit UntClose;
...
procedure AddBtnClick;
procedure EditBtnClick;
procedure DelBtnClick;
implementation
procedure AddBtnClick;
begin
ShowMessage('add close');
end;
procedure EditBtnClick;
begin
ShowMessage('edit close');
end;
procedure DelBtnClick;
begin
ShowMessage('delete close');
end;
end.
我想在每次创建框架的使用子句时动态添加一个单元(如果可能),以便单击框架的添加、编辑或删除按钮会触发正确的方法(如果单击打开按钮,则来自 UntOpen 的方法如果单击关闭按钮,则来自 UntClose 或方法)。
还是有更有效的方法来做到这一点?
谢谢。