AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Variabel viele Instanzen eines Objekts

Ein Thema von Antigo · begonnen am 30. Mär 2005 · letzter Beitrag vom 30. Mär 2005
 
Antigo

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

Variabel viele Instanzen eines Objekts

  Alt 30. Mär 2005, 10: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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:34 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