Zitat von
Nogge:
Aso, vergessen zu erwähnen: Man kann den Konstruktor dann zwar nicht mehr mit nem "." auswählen, allerdings akzeptiert der Compiler <Instance>.Create() als ganzes.
Konstruktoren sind in Delphi komische Viecher.
Du kannst sie als Class methods ausführen: Also Deineklasse.Create; aber auch als Instance methods.
Im ersten Fall wird eine neue Instanz angelegt, im zweiten Fall wird der Initialisierungs-Code des Konstruktors auf die Instanz ausgeführt.
Delphi-Quellcode:
type
TSomeClass = class
public
Hiho : Integer;
constructor Create;
end;
constructor TSomeClass.Create;
begin
Hiho := 2;
end;
var
obj : TSomeClass;
begin
obj := TSomeClass.Create();
obj.Hiho := 1;
obj.Create(); // geht und wiederholt was immer Create mit der Instanz gemacht hat
Writeln(obj.Hiho);
Einen Konstruktor als Instanzmethode auszuführen ohne die Instanz vorher angelegt zu haben knallt natürlich...