Hallo.
Ich habe folgendes Problem: Ich möchte ein Objekt kopieren, weiß aber zur Laufzeit nicht, um welche Klasse es sich handelt.
Der Code sieht in etwa so aus:
Delphi-Quellcode:
type
TBasis = class(TObject);
TAbleitungA = class(TBasis);
TAbleitungB = class(TBasis);
var
test, kopie: TBasis;
begin
test := GibtMirWas(); // gibt entweder TAbleitungA oder TAbleitungB
// Versuche: Kopie anlegen
{Versuch 1} kopie := test.ClassType.Create; // Problem: Wie TObject nach "test.ClassType.ClassName" casten? Ich will am Ende aber ein TAbleitungX und kein TBasis haben...
{Versuch 1} kopie := test.NewInstance; // Problem: Das selbe
kopie.feld := 'ABC'; // wegen dieser Veränderung darf die originale Klasse nicht verwendet werden.
MeineFunktion(kopie);
end;
Wie kann ich das machen?
Gruß
blackdrake