我新的德爾福,我在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