Hi alle,
ich habe zur Zeit das "Problem", dass ich eine Basisklasse habe von der mehrere Unterklassen (nennt man das eigentlich so?) abgeleitet sind.
Dh sowas in der Art:
Delphi-Quellcode:
TBase = class
public
constructor Create; override;
end;
TSub1 = class(TBase)
public
constructor Create; override;
end;
TSub2 = class(TBase)
public
constructor Create; override;
end;
Nun muss ich ja im Programm Instanzen der Sub-Klassen erzeugen. Zur Zeit wüsste ich nur, dass ich direkt im normalen Code abfrage welchen Typ ich will und dann diese Klasse erstelle (zb MyCon := TSub1.Create
.
Gibt es eine Möglichkeit, wie ich der Klasse TBase einen Konstruktor der Art Create(Typ: String); schreibe, der ich dann im Parameter zb "Sub1" übergebe, und die dann selber eine der Sub-Klassen erstellt?
Also ungefähr sowas:
Delphi-Quellcode:
type
TBase = class
public
constructor Create(Typ: String);
end;
TSub1 = class
public
constructor Create;
end;
...
constructor TBase.Create(Typ: String);
begin
if Typ = 'Sub1' then
Self := TSub1.Create;
...
end;
var
MyClass = TBase;
begin
MyClass := TBase.Create('Sub1');
end;
Wäre Klasse wenn das irgendwie ginge, oder jemand ne andre intelligente Art hat wie man sowas erledigt
Grüße,
Chris