Ich bin dabei eine Klasse von TStringList abzuleiten und zwar eine TIntStrintList, die eine Art Dictionary sein wird.
Delphi-Quellcode:
type
TIntStringList = class(TStringList)
public
function AddInteger(const s: string; i: integer): Integer;
function GetInteger(const s: string; var i: integer): boolean;
end;
implementation
function TIntStringList.AddInteger(const s: string; i: integer): Integer;
begin
if not Sorted then
Result := Count
else // sorted
if Find(S, Result) then // if not found Result is 0
if Duplicates = dupIgnore then
Exit;
InsertItem(Result, S, TObject(i));
end;
function TIntStringList.GetInteger(const s: string; var i: integer): boolean;
begin
Result := False;
i := IndexOf(s);
if i > - 1 then
begin
i := Integer(Objects[i]);
Result := True;
end;
end;
Ich nutze dabei InsertItem() der StringList, mache aber einen Typecast TObject(i) damit ich direkt einen Integer speichern kann.
Meine Frage ist ob ich die Integers die in Objects[] gespeichert werden vor dem .Free einer Instanz so Liste einzeln manuell freigeben muss, damit kein Speicherleck entsteht?