我新的德尔福,我在Delphi 6创建一个组件,但我不能让构造函数运行:德尔福自定义构造函数永远不会运行
unit MyComms1;
...
type
TMyComms = class(TComponent)
public
constructor MyConstructor;
end;
implementation
constructor TMyComms.MyConstructor;
begin
inherited;
ShowMessage('got here');
end;
不要紧什么构造函数被调用,但是这个代码根本不运行构造函数。
编辑
由请求,这里是TMyComms
类是如何初始化(这个码是在一个不同的文件名为TestComms.pas):
unit TestComms;
interface
uses MyComms1, ...
type
TForm1 = class(TForm)
MyCommsHandle = TMyComms;
...
procedure BtnClick(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
procedure TForm1.BtnClick(Sender: TObject);
begin
MyCommsHandle.AnotherMyCommsProcedure;
end;
编辑2
阅读一些看起来像构造函数的答案必须在delphi中手动调用。它是否正确?如果是这样,那么这肯定是我的主要错误 - 我习惯于在__construct
函数被自动调用,每当一个类被分配到一个句柄。
,只要你喜欢,所以我不知道是否和如何PHP解决了,但据我所知,'Java','C#','C你可以有许多构造++',...,'Delphi' * *全部**需要正确的构造函数被手动调用。 –
这里最大的问题是虚拟构造函数。 @mull你有兴趣了解这个问题。 –
您必须更改您在PHP中获得的许多*习惯。我想,这将是明智的*不要假设,该语言的结构与PHP类似,因为通常它们不会。 – Spook