Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

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

Re: über Objekte einer Klasse iterieren

  Alt 27. Sep 2007, 10:25
Zitat von s-off:
Für einige Klassen ist dieses bereits implmentiert worden. Beispielsweise für TForm und ihr Feld FComponents, wie bereits in #2 erläutert.
Das Eine hat doch nichts mit dem Anderen zu tun. Wincontrols können als Container fungieren und stelln deshalb logischerweise Funktionalitäten bereit, die es ermöglichen, durch den Container zu iterieren. Das betrifft jedoch andere Objekte, die auf ihr drauf liegen, aber nicht die Form selbst...

Die TForms-Klasse weiss aber auch nicht, wie viele Forms denn so rumfleuchen. Das geht auch gar nicht, weil eine Klasse keine Felder besitzen kann, die aber irgendwie für die Implementierung dieser Funktionalität von Nöten wäre.

Erstelle Dir also einen Container für deine Objekte. Im Construktor fügst Du die Instanz in die Liste ein und im Destruktor wieder raus.

Delphi-Quellcode:
TPanelContainer = Class (TList) ...
...
End;

Var
  MyPanelContainer : TPanelContainer;

TMyPanel = Class (TPanel)
  Constructor Create (aOwner : TComponent); Override;
  Destructor Destroy;
...
End;

Constructor TMyPanel.Create (aOwner : TComponent);
Begin
  inherited;
  MyPanelContainer.Add (Self);
...
end;

Destructor TMyPanel.Destroy;
Begin
  MyPanelContainer.Remove (Self);
  ...
  inherited
End;
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat