如何重载构造函数?

sc_arhat 2005-12-10 10:39:38
我从TForm类继承创建了一个类,希望重载TForm的Create方法,在窗体创建的时候通过参数把窗体的Name和其他一些属性传递进去,但Delphi的帮助上好象说构造函数重载要求函数名的参数要跟父类一致(小弟英文不好,不知看对了没有),如果那样的话创建的时候怎样把需要的值传进去?
我现在的做法是用个新的方法把构造函数包装一下,但以前好象听说是可以通过给构造函数提供参数传递值的,不知道是怎么做的,大侠们指点一下,先谢过
...全文
348 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
luxuewei5214 2005-12-15
  • 打赏
  • 举报
回复
重新定义create,把原来的隐藏就好了
constrtuct create();
begin
xxxxx;
inherited Create(false);
end;
clasj 2005-12-11
  • 打赏
  • 举报
回复
mark
wizardqi 2005-12-10
  • 打赏
  • 举报
回复
//看以下代码能否满足要求
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent);overload;override;
constructor Create(AOwner: TComponent;fName:String);overload;virtual;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

constructor TForm1.Create(AOwner: TComponent; fName: String);
begin
inherited Create(AOwner);
Name:=fName;
end;

constructor TForm1.Create(AOwner: TComponent);
begin
inherited;
end;

end.
快乐老猫 2005-12-10
  • 打赏
  • 举报
回复
一般都是相同的构造参数,用 override,参数不同就用reintroduce; overload;
如:
constructor Create(AOwner: TComponent; const iChannelID: Integer); reintroduce; overload;
windindance 2005-12-10
  • 打赏
  • 举报
回复
调用:
Form1 := TForm1.Create(Application,1);
windindance 2005-12-10
  • 打赏
  • 举报
回复
constructor Create(AOwner: TComponent; AValue:integer); reintroduce;

begin
inherited Create(AOwner);
...
end;
qizhanfeng 2005-12-10
  • 打赏
  • 举报
回复
type

TShape = class(TGraphicControl)
private
FPen: TPen;
FBrush: TBrush;
procedure PenChanged(Sender: TObject);
procedure BrushChanged(Sender: TObject);
public
constructor Create(Owner: TComponent); override;
destructor Destroy; override;
...
end;

constructor TShape.Create(Owner: TComponent);

begin
inherited Create(Owner); // Initialize inherited parts
Width := 65; // Change inherited properties
Height := 65;
FPen := TPen.Create; // Initialize new fields
FPen.OnChange := PenChanged;
FBrush := TBrush.Create;
FBrush.OnChange := BrushChanged;
end;

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧