AGB  ·  Datenschutz  ·  Impressum  







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

Einen Haufen Objekte verwalten

Ein Thema von Michael_Bayer · begonnen am 1. Jun 2005 · letzter Beitrag vom 1. Jun 2005
Antwort Antwort
Seite 1 von 2  1 2      
Michael_Bayer

Registriert seit: 20. Mär 2005
137 Beiträge
 
Delphi 7 Enterprise
 
#1

Einen Haufen Objekte verwalten

  Alt 1. Jun 2005, 14:49
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!
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

Re: Einen Haufen Objekte verwalten

  Alt 1. Jun 2005, 14:54
Warum brauchst du überhaupt ein array oder sowas ich erstelle die einfach

Delphi-Quellcode:
With TButton.Create do
Begin
  Caption:='xxx';
  Name='B_1';
End;
Und Spreche die dann mit Findcomponent an
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#3

Re: Einen Haufen Objekte verwalten

  Alt 1. Jun 2005, 14:56
Hallo Michael,

guck dir mal die Delphi-Referenz durchsuchenTObjectList an. Darin kannst du Objekte jeglichen Typs (solang sie von TObject abgeleitet sind) speichern.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#4

Re: Einen Haufen Objekte verwalten

  Alt 1. Jun 2005, 14:57
@franktron

with TButton.Create do begin
...
Parent := Self; // oder was auch immer dein parent war, panel, form, frame, ...
...

hast vergessen
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Einen Haufen Objekte verwalten

  Alt 1. Jun 2005, 14:58
Versteh ich dich richtig...du erzeugst Objekte und lässt sie rumliegen einfach so??

bzw. sidn deine Objekte alle global ?

weil normal wäre...
Delphi-Quellcode:
function MyFunction(.....): TIrgendwas;
var
...
 EineInstanz: TMyObject;
...
begin
  ...
  EineInstanz := TMyObject.Create
  try
   .....
   .....
  finally
   EineInstanz.free;
  end;
end;
man instanziert ein Objejt und sobald man es nicht braucht, weg damit...
oder hab ich dich ganz falsch verstanden?

Gruß
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Michael_Bayer

Registriert seit: 20. Mär 2005
137 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Einen Haufen Objekte verwalten

  Alt 1. Jun 2005, 15:02
Zitat von Tyrael Y.:
Versteh ich dich richtig...du erzeugst Objekte und lässt sie rumliegen einfach so??

bzw. sidn deine Objekte alle global ?

weil normal wäre...
...code...

man instanziert ein Objejt und sobald man es nicht braucht, weg damit...
oder hab ich dich ganz falsch verstanden?

Gruß
Ja die Objekte sind global, denn das sind halt meine, mit daten gefütterten, Objekte. (Die liegen einfach rum und warten darauf, dass man was mit ihnen macht )

EDIT: @alcaeus: TObjectList klingt gut..Danke!
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#7

Re: Einen Haufen Objekte verwalten

  Alt 1. Jun 2005, 15:06
Zitat von franktron:
Warum brauchst du überhaupt ein array oder sowas ich erstelle die einfach

Delphi-Quellcode:
With TButton.Create do
Begin
  Caption:='xxx';
  Name='B_1';
End;
Und Spreche die dann mit Findcomponent an
Erstes ist es verdammt langsam und zweitens vermute ich mal, dass er keine Visuellen Objekte hat.

Um wirklich viele Objekte zu verwalten ist TObjectList vermutlich am besten.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

Re: Einen Haufen Objekte verwalten

  Alt 1. Jun 2005, 16:21
Zitat von barf00s:
@franktron

with TButton.Create do begin
...
Parent := Self; // oder was auch immer dein parent war, panel, form, frame, ...
...

hast vergessen
Ja wahr etwas zu stark vereinfacht

@Tyrael Y.

Ja sie liegen nur so rum
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Einen Haufen Objekte verwalten

  Alt 1. Jun 2005, 16:34
Nochmal für mich als Rentner zum Mitschreiben:
Du hast also tierisch viele Objekte, die Du ... wie erzeugst? So etwa?
Delphi-Quellcode:
...
  TMyObject.Create
...
Oder wie?
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:
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.
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.

P.S: TObjectList gibts wohl erst *nach* D6, oder? Ich habs jedenfalls nicht...
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#10

Re: Einen Haufen Objekte verwalten

  Alt 1. Jun 2005, 16:36
TObjectList findest in der Unit "Contnrs" .sprich. Containers
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:48 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