Einzelnen Beitrag anzeigen

Antigo

Registriert seit: 14. Mär 2005
274 Beiträge
 
#1

Variabel viele Instanzen eines Objekts

  Alt 30. Mär 2005, 11:25
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
Michael
"How should I know if it works? That's what beta testers are for. I only coded it."
  Mit Zitat antworten Zitat