![]() |
Stringlist und Objects
Hallo zusammen,
ich benötige recht häufig Stringlisten. An den Stringlisteneinträgen hängen noch weitere Daten dran. Das mache ich wie folgt (in Anlehnung an einen anderen Beitrag aus der DP):
Delphi-Quellcode:
type
TDat = class(TObject) s: string; ... destructor Destroy; override; // nur zum testen end;
Delphi-Quellcode:
Verwendet wird das so:
destructor TDat.Destroy;
begin showmessage('TDat.Destroy'); inherited Destroy; end;
Delphi-Quellcode:
dat:= TDat.Create;
with d do begin s:= 'Test'; ... end; MeineStringListe.AddObject('Zeile', dat); Das funktioniert soweit auch. Das Problem aber ist nun folgendes: Mit
Delphi-Quellcode:
und
MeineStringListe.Clear;
Delphi-Quellcode:
erzeugt man Speicherleichen.
MeineStringListe.Free;
-> Wie kann ich solche Speicherleichen auffinden: Gerade in einem anderen Beitrag gefunden: mit -> TObjectList geht das wohl werd ich gleich mal probieren! Man könnte zwar vor Clear oder Free
Delphi-Quellcode:
aufrufen, finde ich aber umständlich.
with MeineStringListe do for i:=0 to Count-1 do Objects[i].Free;
-> Gibt es eine elegantere Möglichkeit? Eleganter wäre wohl:
Delphi-Quellcode:
Wenn man einzelnen Stringlisteneintrag löscht geht das zwar,
type
TObjStringList = class(TStringList) procedure Delete(Index: Integer); override; end; procedure TObjStringList.Delete(Index: Integer); begin Showmessage('TObjStringList.Delete '+IntToStr(Index)); Objects[Index].Free; inherited; end; aber bei Clear und Free wird delete nie aufgerufen (-> ich dachte zumindest clear ruft für alle delete auf) muss man dann neben delete auch clear und/oder free überschreiben oder besser: gibt es was fertiges im Sinne von TObjStringList bei dem schon an alles gedacht wurde? |
Re: Stringlist und Objects
ich glaub bei StringList.OwnsObjects := True; gibt er diese selber frei.
|
Re: Stringlist und Objects
Zitat:
|
Re: Stringlist und Objects
Zitat:
Musst Du wohl doch selbst bauen, wobei da die 3 Methode Delete, Clear und Free anzupassen kein großer Aufwand sein sollten :) Viele Grüße |
Re: Stringlist und Objects
Ok,
das anzupassen krieg ich hin. Aber Zitat:
Wäre es besser TStringList zu vergessen und auf TObjectList (oder Alternative) aufzubauen? |
Re: Stringlist und Objects
Liste der Anhänge anzeigen (Anzahl: 1)
Ok, D7 und TDE/D2006 kennen es wirklich noch nicht :|
Ansonsten find ich die Beschreibungen der OH immer sowas von geil und aussagekräftig :wall: |
Re: Stringlist und Objects
Damit ist doch alles gesagt :lol:. Wann immer möglich, greife ich selbst deshalb auch meist auf die alte Hilfe von D7 zurück, die war wenigstens noch brauchbar.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz