Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Variabel viele Instanzen eines Objekts (https://www.delphipraxis.net/43174-variabel-viele-instanzen-eines-objekts.html)

Antigo 30. Mär 2005 10:25


Variabel viele Instanzen eines Objekts
 
Hi,
Ich bastel im Moment an einem Projekt rum. Dabei hab ich eine Klasse, von der ich aber per Knopfdruck die Anzahl der Instanzen - also wie oft es das Objekt gibt ;) - erhöhen muss.
Ich hab das jetzt mit einem dynamischen Array gelöst, das dann bei einem button klick um ein Feld "verlängert" wird (Setlength).

Mein eigentliches Problem ist jetzt das ich mit ganz oft Eigenschaften des Objektes ändern muss, genauergesagt mit einem sehr niedrig eingestellten timer. So und jetzt kommt es vor das ich eine Instanz nicht mehr brauche. Nur leider ist das meistens nicht das zu letzt erstellte, so dass ich nicht einfach destroy; und dann setlength(objektarray,length(objektarray)-1) machen kann.
Meine erste Idee war eine Prozedur zu schreiben die nach einem erfolgreichen destroy das Array säuberte, heisst, das nicht mehr benötigte rauslöscht und alle anderen eins aufrücken lässt. Das hat auch einwandfrei funtkioniert. Nur dann kam der Fall das dieser arraybereiniger nicht mehr mit dem Timer mithalten konnte und eine AV auslöste.
Jetzt hab ich es so gelöst das ich dem Objekt eine zusätzliche Eigenschaft >aktiv< gegeben habe, die ich auf false setze wenn das Objekt nicht mehr benötigt wird. Wenn man jetzt eine neue Instanz des Objektes erstellen will, wird erst geguckt ob noch eine inaktive besteht und dann wird diese wieder auf aktiv:=true gesetzt.
Funktionieren tut das ganze gut, ist aber meiner Meinung nach nicht sehr ellegant, da einmal erstellte Instanzen nie wieder gelöscht werden und unnötig speicher verbrauchen.


Hat jemand eine Idee wie ich das elegeant und ressourcen schonend umsetzen kann?


schonmal vielen dank im vorraus :)

Khabarakh 30. Mär 2005 10:36

Re: Variabel viele Instanzen eines Objekts
 
Delphi-Referenz durchsuchenTObjectList :wink:

Antigo 30. Mär 2005 10:43

Re: Variabel viele Instanzen eines Objekts
 
oh man wie geil, warum ist bei delphi immer alles so einfach? :)

vielen dank :)

jim_raynor 30. Mär 2005 11:28

Re: Variabel viele Instanzen eines Objekts
 
Und falls du doch bei Arrays bleiben willst:

http://www.delphipraxis.net/internal...ht=deletearray

Damit kannst ganz einfach und relativ schnell einen Eintrag aus einem Array löschen :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 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