C++ Builder中所有的事件与方法全部以函数方式实现,因此,一个TForm类的实例可以很方便地重载它的构造函数,加入一些必要的参数,加强与外部的联系。比如在员工档案管理模块中,需要定义一个新增和修改员工档案的模块,我们可以定义一个含参的TForm类,并充分利用这个参数同时完成新增和修改两种功能。部分代码如下:
头文件定义:
private:
String EmployeeID; //定义要修改的员工的ID号
public:
__fastcall TFormEmployee (TComponent* Owner,String EmpIDString);
CPP文件中部分代码:
__fastcall TFormEmployee:: TFormEmployee (TComponent* Owner,String EmpIDString)
; ; ; ; : TForm(Owner)
{
; EmployeeID = EmpIDString; ; ; //赋值后即可在模块中使用了
}
......
在实现时,判断若EmployeeID变量不为空则修改,为空则实现新增。这样既可明晰模块间的接口关系。又可减少代码冗余。提高工作效率。但Delphi语法结构与C++有所不同,它没有象以上的这种构造函数。直接实现TForm接口不大方便。也不利于模块间的接口实现。经本人的实践,找到一种简单方便的实现方法,可以轻易地解决这个问题。在需要接口的TForm单位中,定义一个接口函数,还以上面的例子描述,则这个函数定义如下:
声明变量:
private:
EmployeeID: String; //定义要修改的员工的ID号
......
function ShowFormEmployee(EmpIDString:String):Boolean;
begin
Application.CreateForm(TFormEmployee, FormEmployee);
try
EmployeeID := EmpIDString;
FormEmployee.ShowModal;
finally
FormEmployee.Free;
end;
end;
以上代码在Win98环境下Delphi5中调试通过。
如何,很简单吧,只要每一个模块定义一个这样的接口函数,使用起来就很方便,而且模块间的接口关系非常明白。与别人的编程接口时,只需要提供这个函数的用法即可。