怎样重载TForm的构造函数?(50分)

  • 主题发起人 主题发起人 blackbeam
  • 开始时间 开始时间
B

blackbeam

Unregistered / Unconfirmed
GUEST, unregistred user!
我加了virtual等关键字,但是无法调用到我写的新的构造函数?应该怎么写?
 
用overrite
声明:
public
constructor Create(AOwner: TComponent)
override;

实现:
constructor TYouClass.Create(AOwner: TComponent);
begin
inherited Create;
//然后写你的代码
end;
 
constructor Create(AOwner: TComponent);override;
 
可能是我没说清楚,我需要传递非TComponent类型的参数,可能需要传递TObject类型的,
这样就需要多个构造函数。
 
override是覆盖原来的Create方法
如果需要重载使用overload关键字

//构造为正常窗体
constructor Create(AOwner: TComponent)
overload
override;
//构造为子窗体
constructor Create(AOwner: TComponent
AParent: TWinControl);
reintroduce
overload;
.
 
TForm类的构造函数是用virtual修饰过的,是虚的所以可以用覆盖的Create函数重载。
TForm1.Create();virtual;
begin
...
end;
 
同意Blue_Morning 的做法,Delphi的Object Pascal Guilder上就有告訴
你這樣寫
 
多人接受答案了。
 
后退
顶部