Einzelnen Beitrag anzeigen

Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#1

IntStringList und Objektfreigabe

  Alt 10. Jun 2020, 14:21
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?
  Mit Zitat antworten Zitat