如果是标准的action,可以使用tactionlist里面的东东来做。
不过肯定有些不是标准的,
我原来写的:
设想这样一个系统界面:
左边是树型导航,右边是panel,在panel上根据不同的导航显示不同的form.
在工具栏有一个“打印”按钮。
当然,我们希望点击这个按钮调用的方法随当前显示form的不同而不同。
不同的form打印的情况都不相同,有的屏幕打印即可,有的需要做报表。
请实现之。
1、我原来的
procedure tform1.printButtonClick(sender:Tobjet)
begin
if currentForm = showform1 then //currentForm保存当前显示的窗口,为tform类型
showform1.printIt;
else if currentForm = showform2 then
showform2.printIt;
.....
end;
2、使用继承和多态的方法
所有的显示form都从一个fathrForm中继承。
在fatherForm中写一个虚方法printIt
所有继承的form根据自己的情况重载这个方法。
我们再看
procedure tform1.printButtonClick(sender:Tobjet)
begin
currentForm.printIt;//currentForm保存当前显示窗口,为tFatherForm类型
end
代码是不是简单了些,当新增加显示form时,这段代码不用改动了吧。