![]() |
Einen Haufen Objekte verwalten
Hallo.
Ich hab hier ein Projekt, in dem zur Laufzeit viele Objekte dyn. erzeugt werden. Jetzt stellt sich die Frage, wie ich die Verwalten soll. Ich würde da ein dynamisches Array nehmen und immer um eins größer werden lassen, wenn ein neues Objekt dazu kommt. Nun kommt es in dem Projekt vor, dass Objekte auch zur Laufzeit wieder verschwinden. Hier würde ich den entsprechenden Eintrag im Array einfach nur nil'en. Je nach dem wieviele Objekte erstellt/grlöscht werden, dürfte das Array nach einiger Zeit aussehen, wie ein schweizer Käse. (und evtl irgendwann mal überlaufen) Ist das sinnvoll das so zu machen oder sollte ich eine Art "Controllerobjekt" machen, dass die einzelnen Objekte in sich trägt und ab und zu mal eine Art "Wartung" durchführt und die ge'nil'ten Einträge entfernt und die Objekte aufrücken lässt (und evtl. einen Index setzt) Oder vielleicht ganz anders? Gruß und danke! |
Re: Einen Haufen Objekte verwalten
Warum brauchst du überhaupt ein array oder sowas ich erstelle die einfach
Delphi-Quellcode:
Und Spreche die dann mit Findcomponent an
With TButton.Create do
Begin Caption:='xxx'; Name='B_1'; End; |
Re: Einen Haufen Objekte verwalten
Hallo Michael,
guck dir mal die ![]() Greetz alcaeus |
Re: Einen Haufen Objekte verwalten
@franktron
with TButton.Create do begin ... Parent := Self; // oder was auch immer dein parent war, panel, form, frame, ... ... hast vergessen :) |
Re: Einen Haufen Objekte verwalten
Versteh ich dich richtig...du erzeugst Objekte und lässt sie rumliegen einfach so??
bzw. sidn deine Objekte alle global :shock: ? weil normal wäre...
Delphi-Quellcode:
man instanziert ein Objejt und sobald man es nicht braucht, weg damit...
function MyFunction(.....): TIrgendwas;
var ... EineInstanz: TMyObject; ... begin ... EineInstanz := TMyObject.Create try ..... ..... finally EineInstanz.free; end; end; oder hab ich dich ganz falsch verstanden? Gruß |
Re: Einen Haufen Objekte verwalten
Zitat:
EDIT: @alcaeus: TObjectList klingt gut..Danke! |
Re: Einen Haufen Objekte verwalten
Zitat:
Um wirklich viele Objekte zu verwalten ist TObjectList vermutlich am besten. |
Re: Einen Haufen Objekte verwalten
Zitat:
@Tyrael Y. Ja sie liegen nur so rum |
Re: Einen Haufen Objekte verwalten
Nochmal für mich als Rentner zum Mitschreiben:
Du hast also tierisch viele Objekte, die Du ... wie erzeugst? So etwa?
Delphi-Quellcode:
Oder wie?
...
TMyObject.Create ... Also, ich habe bei mir, wenn überhaupt, immer eine Liste von Objekten. Dann habe ich eine Funktion, die mir ein neues Objekt liefert. In der Funktion speichere ich das Objekt dann in einer TList ab. Wozu eigentlich dynamische Arrays? Ist doch Murks. Dann noch eine, die eine Instanz wieder freigibt. Wenn Du richtig abschleimen willst, dann kannst Du ja noch davon ausgehen, das die Objekte 'wissen', das sie in einer Liste gespeichert werden, also ähnlich einer Collection:
Delphi-Quellcode:
Nur mal so: Gewöhn Dir doch mal an, soweit möglich, die vorhandenen Delphi-Klassen zu nehmen, die sind echt praktisch. Wenn man sich mal dran gewöhnt hat, machen die einem das Leben sogar einfacher.
Constructor TMyObject.Create;
Begin Inherited; aMyObjectList.Add (Self); ... End; Destructor TMyObject.Destroy; Begin aMyObjectList.Remove (Self); ... Inherited; End; Procedure FinalizeObjects; Var i : Integer; Begin While aMyObjectList.Count > 0 do TMyObject (aMyObjectList).Free; aMyObjectList.Free; End; Initialization aMyObjectList := TList.Create; Finalization FinalizeObjects; end. P.S: TObjectList gibts wohl erst *nach* D6, oder? Ich habs jedenfalls nicht... |
Re: Einen Haufen Objekte verwalten
TObjectList findest in der Unit "Contnrs" .sprich. Containers
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:30 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-2025 by Thomas Breitkreuz