Hallo,
ich hab eine eigene Klasse (TMyDictionary), die von TDictionary abgeleitet ist erstellt. Diese soll u.a. auch eine Assign-Funktion erhalten, um das ganze Dictionary in ein anderes zu kopieren. Doch es gibt in der Zeile, die mit **FEHLER** markiert ist, diesen Fehler:
Code:
Fehler E2010 Inkompatible Typen 'MeineUnit.TValue' und 'System.Rtti.TValue'
Was kann ich tun?
(Warum klappt das Zuweisen von TKey? Das von TValue auf die gleiche Art und weise aber nicht?)
Delphi-Quellcode:
interface
TMyDictionary<TKey, TValue> = class(TDictionary<TKey, TValue>)
public
...
procedure Assign(Source: TObject); virtual;
end;
...
implementation
procedure TMyDictionary<TKey, TValue>.Assign(Source: TObject);
var
LKey: TKey;
LValue: TValue;
begin
if Source is TMyDictionary<TKey, TValue> then
begin
for LKey in (Source as TMyDictionary<TKey, TValue>).Keys do
begin
LValue := (Source as TMyDictionary<TKey, TValue>).Items[LKey];
Add(LKey, LValue); <-- **FEHLER**
end;
end
else
AssignError(Source, self);
end;