【发布时间】:2019-08-12 15:51:49
【问题描述】:
我有两个几乎相同的表单(Form4 和 Form5),它们有几个共同的项目,但处理不同的数据。 我正在尝试编写一个可以采用这两种形式的辅助函数。
两种形式都是动态创建的。
到目前为止,我能够编写处理来自 Form4 [Process(TForm4 *F)] 的数据的函数。我不能从 Form5 做同样的事情,因为辅助函数是特定于 TForm4 的。
来自 Form4
Edit1Exit(Tobject *Sender){
Process(this);
}
来自Form5
Edit1Exit(Tobject *Sender){
Process(this);
}
Process(TForm4 *F){
// Do something like F->BitBtn1->Visible=false;
}
问题是 Process( ) 是为 TForm4 编写的,所以它不会接受 TForm5。
如何声明 Process() 以便它采用任何一种形式。
【问题讨论】:
-
听起来像是模板函数的工作(或者,如果你愿意,重载函数)..
-
为什么不从基类中派生 TForm4 和 TForm5 并将基类作为参数传递给您的常用方法?