Guten Abend allerseits,
Ich probiere mir eine eigene Klasse von TObjectDictionary zu basteln. Das geht ja alles gut unds kompiliert auch. Wenn ich allerdings dann ein Objekt von der Klasse erzeugen möchte, ist beim "Inherited Create( s,0)" im Constructor Schluss mit Lustig. Ich krieg immer ne Fehlermeldung:
Erste Gelegenheit für
Exception bei $77401812.
Exception-Klasse EInvalidCast mit Meldung 'Ungültige Typumwandlung'. Prozess MyProg.exe (6512)
Code:
type
TReportCache = class( TObjectDictionary<String,TfrxReport> )
private
public
function GetReportObject( const aReportName: string): TfrxReport;
procedure DelReportObject( const aReportName: string);
Constructor Create;
end;
implementation
{ TReportCache }
constructor TReportCache.Create;
var
s: TDictionaryOwnerShips;
begin
s := [doOwnsKeys, doOwnsValues];
inherited Create( s, 0);
end;
Wenn ich "inherited Create" im Constructor ohne Parameter aufrufe funktionierts, allerdings krieg ich dann üble Speicherlecks weil die Objekte so in der Liste natürlich nicht abgeräumt werden.
Hat mir jemand einen Tipp was ich falsch mache?