Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TListe Inhalte elegant löschen (https://www.delphipraxis.net/52189-tliste-inhalte-elegant-loeschen.html)

lukas833 25. Aug 2005 08:36


TListe Inhalte elegant löschen
 
Guten Morgen.

Eigentlich ist es mir schon fast peinlich diese Frage zus tellen, andererseits habe ich bisher trotz intensiver such keine befriedigende Antwort gefunden.

Folglich vielleicht kann mir hier jemand helfen.

Problem:
Ich erstelle eine TList mit ca 200 Einträgen. Jeder Eintrag enthält natürlich ein Object, daß mit 'create' erzeugt wurde.
Nun möchte ich die Liste wieder zurücksetzen auf 0 Einträge.
Wie geht das am elegantesten?

Eine Möglichkeit ist natürlich, per Schleife jedes Objekt in der Liste manuell zu löschen.
Geht das aber vielleicht auch einfach mit liste.count := 0; ?

Der Hilfetext gibt nicht Antwort auf die Frage ob die Objekte in der Liste so automatisch gelöscht werden. Im Code sehe ich das auch nicht.


Danke.

Bernhard Geyer 25. Aug 2005 08:40

Re: TListe Inhalte elegant löschen
 
du mußt TObjectList nehmen. Diese Klasse bietet sowas.

lukas833 25. Aug 2005 09:13

Re: TListe Inhalte elegant löschen
 
Danke,
das war schnell.

Ich wußte es ist ganz einfach.

Nochmals zur abschließenden Klärung.

TList bietet das nicht?!

Ansonsten Grüße nach Herzogenaurach, ich hatte dort mal eine sehr schöne Zeit.

Bernhard Geyer 25. Aug 2005 09:45

Re: TListe Inhalte elegant löschen
 
Zitat:

Zitat von lukas833
TList bietet das nicht?!

Nein! TList verwaltet nur Pointer und die kannst Du ja auch mittels AllocMem angefordert haben.

Zitat:

Zitat von lukas833
Ansonsten Grüße nach Herzogenaurach, ich hatte dort mal eine sehr schöne Zeit.

Beruflich oder Privat (oder beides)?

BlackJack 25. Aug 2005 09:49

Re: TListe Inhalte elegant löschen
 
Zitat:

Zitat von lukas833
TList bietet das nicht?!

natürlich könntest du die Objekte auch in einer TList speichern und die dann mit List.Clear leeren, aber dann würden halt nicht die objekte automatisch freigegeben werden und du hättest speicherlecks. von daher nimm lieber ne TObjectList ;)

edit: alternatriv könnte man auch versuchen, über die Notify-procedure einer TList die Objekte dann wieder freizugeben, aber warum sollte man sich die Mühe machen, wenn TObjectList das von Haus aus bietet?

lukas833 25. Aug 2005 11:51

Re: TListe Inhalte elegant löschen
 
@BlackJack: Vollkommen richtig. Ich habe hier allerdings alten Code vor mir
und da wechselt man ungerne schnell mal die Klasse eines stark benutzten Objektes

@Berhard Geyer: Herzogenaurach; privat; 1 Klasse Gymnasium; 1 Semester Studium aber inzwischen hat sich
dort einiges verändert.

Nochmals Danke für die schnellen Antworten.
Vielleicht kann ich mal mit einer echten Herausforderung aufwarten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz