Die Methode meiner realen Klasse wird nicht aufgerufen, wie bekomme ich das hin.
Mein Code:
Delphi-Quellcode:
Type
tMyList = class( tList )
Procedure Add( Const cClass : tMyBaseClass ) ;
End ;
tMyclassDef = class of tMyBaseClass ;
tMyBaseClass = class
classTyp : tmyClassDef ;
Procedure Clone ; Virtual ;
End ;
tMySpezielleKlasse = class ( myBaseClass )
Procedure Clone ; Override ;
End ;
...
abc := tMySpezielleKlasse.create ;
abc.ClassType := tMySpezielleKlasse ;
List := tMytMyList.create ;
List.Add ( abc ) ;
// jetzt kommt das Problem
ab_neu := tMyBaseClass( List[0] ).Clone ; // ruft das Clone von tMyBaseClass auf
lClassType := tMyBaseClass( List[0] ).ClassType ;
ab_neu := ( List[0] as lClassType ).Clone ; // ruft auch das Clone von tMyBaseClass auf
// da wichtige Objekte Instanziert werden müssen, muss das Clone meiner speziellen
// Klasse aufgerufen werden
...
Ich müsste irgendwie den Aufruf der abgeleiteten Klasse erzwingen - aber wie?
Weiß jemand einen Rat. Gruß