AGB  ·  Datenschutz  ·  Impressum  







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

über Objekte einer Klasse iterieren

Ein Thema von Bomberbb · begonnen am 27. Sep 2007 · letzter Beitrag vom 28. Sep 2007
Antwort Antwort
Seite 1 von 3  1 23      
Bomberbb

Registriert seit: 23. Sep 2003
227 Beiträge
 
#1

über Objekte einer Klasse iterieren

  Alt 27. Sep 2007, 09:46
Hallo!

Ist es möglich in Delhi über die Objekte einer Klasse zu iterieren???

Sascha
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#2

Re: über Objekte einer Klasse iterieren

  Alt 27. Sep 2007, 10:05
Hallo,

wenn Deine Klasse das kann; sicher.

Die Klasse TForm hat beispielsweise die Eigenschaft 'ComponentCount' über die sämtliche auf der Form befindlichen Componenten abgefragt werden können (sämtliche Komponenten werden intern in einer TList referenziert). Damit kannst Du dann über die Komponenten iterieren.
  Mit Zitat antworten Zitat
Benutzerbild von peschai
peschai

Registriert seit: 15. Feb 2004
Ort: Göppingen
270 Beiträge
 
Delphi XE5 Professional
 
#3

Re: über Objekte einer Klasse iterieren

  Alt 27. Sep 2007, 10:12
Hallo
Kannst du kurz beschreiben was du tun möchtest, dann können wir eventuell besser helfen.

Wen du z.b. wissen möchtest wie oft die Klasse TObject instantiiert wurde, also wie oft es das Objeckt "TObject" gibt, so kann dir standard delphi das nicht sagen. Den create bzw destroy prozess müsstest du mitprotokollieren in zb einer eigenen abgeleteteten TMyObject Klasse.

Es gibt aber einige Klassen, welche per definition weintere Klassen verwalten und so etwas bereits mitbringen. das Property "Components" z.b TForm ist hier ein Beispiel.
Peter Schaible
  Mit Zitat antworten Zitat
Bomberbb

Registriert seit: 23. Sep 2003
227 Beiträge
 
#4

Re: über Objekte einer Klasse iterieren

  Alt 27. Sep 2007, 10:20
Ja die Möglichkeit mit Components hab ich auch schon gesehen, da wird aber über die Komponenten auf einer Komponente iteriert.

Mein Problem ist, wenn die auf unterschiedlichen Komponenten sitzen, erwische ich nicht alle...

Ich habe eine Komponente von TCustomPanel abgeleitet und möchte nun über alle Objekte iterieren, die sich in meinem Programm befinden. Hatte schon überlegt, etwas ähliches wie einee verkettete Liste im Konstruktor zu erstellen, das bekomme ich aber auch nicht hin, da ich im Konstruktor keinen Zeiger auf mein Objekt bekomme...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: über Objekte einer Klasse iterieren

  Alt 27. Sep 2007, 10:27
Rekursion ist hier das Stichwort.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Bomberbb

Registriert seit: 23. Sep 2003
227 Beiträge
 
#6

Re: über Objekte einer Klasse iterieren

  Alt 27. Sep 2007, 10:34
Rekursion? Wie muss ich mir das in diesem Zusammenhang vorstellen?
  Mit Zitat antworten Zitat
Benutzerbild von peschai
peschai

Registriert seit: 15. Feb 2004
Ort: Göppingen
270 Beiträge
 
Delphi XE5 Professional
 
#7

Re: über Objekte einer Klasse iterieren

  Alt 27. Sep 2007, 10:41
Zitat von Bomberbb:
...bekomme ich aber auch nicht hin, da ich im Konstruktor keinen Zeiger auf mein Objekt bekomme...
Innerhalb des constructors nach dem Aufruf von Inherited sollte "Self" die adresse deines Objects sein ...
Peter Schaible
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#8

Re: über Objekte einer Klasse iterieren

  Alt 27. Sep 2007, 10:49
Zitat von peschai:
Wen du z.b. wissen möchtest wie oft die Klasse TObject instantiiert wurde, also wie oft es das Objeckt "TObject" gibt, so kann dir standard delphi das nicht sagen. Den create bzw destroy prozess müsstest du mitprotokollieren in zb einer eigenen abgeleteteten TMyObject Klasse.

Es gibt aber einige Klassen, welche per definition weintere Klassen verwalten und so etwas bereits mitbringen. das Property "Components" z.b TForm ist hier ein Beispiel.
[...]
Liest hier eigentlich niemand (fast niemand) die Beiträge eines Threads, bevor er antwortet? Ansonsten kann ich mir das permanente Wiederholen bereits getätigter Aussagen nicht erklären...

Zurück zum Thema<<<
Zitat von Luckie:
Rekursion ist hier das Stichwort.
Für Rekursion benötigt er aber etwas, woran er sich festhalten kann. Und das muss die Klasse können, wie bereits in Beitrag #2 erläutert. Oder meintest Du das Luckie?
  Mit Zitat antworten Zitat
Bomberbb

Registriert seit: 23. Sep 2003
227 Beiträge
 
#9

Re: über Objekte einer Klasse iterieren

  Alt 27. Sep 2007, 10:59
@peschai:

Das wird nicht funktionieren, da Self kein Zeiger ist.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: über Objekte einer Klasse iterieren

  Alt 27. Sep 2007, 11:04
Nun ja, wen er eine Komponente gefunden hatm, ruft er ComponentCount usw. für die gefundene Komponente auf und so weiter. Eben genauso wie man durch das Dateisystem iteriert mit Rekursion.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 22:39 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