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 3 von 3     123   
s-off
(Gast)

n/a Beiträge
 
#21

Re: über Objekte einer Klasse iterieren

  Alt 27. Sep 2007, 12:59
Zitat von peschai:
@s-off:
Bitte weniger Vorwürfe was ein anderer falsch macht oder schreibt oder nicht liest und mehr konstruktive hilfe.
@
Wenn mir etwas nicht passt, dann sage ich das. Und ich möchte, dass das respektiert wird. Dieses Recht räume ich schliesslich auch jedem anderen mir gegenüber ein.
Wenn jemand mit meiner Kritik nicht umgehen kann, hat er mehrere Möglichkeiten:
  • Er ignoriert es
  • Er verwertet die Kritik; wie auch immer.
Über quantitative Aspekte mein Angebot an Hilfestellungen betreffend kannst Du Dich wohl kaum beschweren. In jedem meiner Beiträge innerhalb dieses Threads bin ich auch auf die Problemstellung eingegangen.
Die Tatsache, dass diese nicht zum gewünschten Erfolg geführt hat, können wir lt. Aussage des Threaderstellers unter 'Kommunikationsschwierigkeiten' verbuchen.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#22

Re: über Objekte einer Klasse iterieren

  Alt 28. Sep 2007, 14:33
Hallo zusammen,

alle haben sich wieder lieb
(Alles Männer und doch versteht man sich nicht...)

Wenn man keine eigenen Komponenten sucht (die man bei Erzeugen extra registrieren kann), geht´s z.B. auch so (das war sicher mit der Rekursion gemeint):

Delphi-Quellcode:
procedure AlleXyzSuchen;

  procedure AlleXyzSuchen_(Comp:TComponent);
  var I:Integer;
      Temp:TComponent;
  begin
    with Comp do begin
      for I:=0 to ComponentCount-1 do begin
        Temp:=Components[I];
        if (Temp is TXyz) then begin
          (Temp as TXyz).MachWas;
        end
        else AlleXyzSuchen_(Temp);
        // wenn auch in TXyz selbst gesucht werden soll, else entfernen
      end;
    end;
  end;

begin
  AlleXyzSuchen_(Application);
end;
Stahli
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#23

Re: über Objekte einer Klasse iterieren

  Alt 28. Sep 2007, 16:03
Zitat von Bomberbb:
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...
Hallo,

dafür gibt es aber mehrere Lösungen:

a) ich rufe für jedes neue Objekt Create auf mit den Parametern Root und Parent - Root ist das Ausgangsobjekt (eines Baumes, hier könnte man auch Klassenvariable einsetzen), Parent eben das Vorgängerobjekt, deren Adressen werden im Objekt gespeichert. Dann rufe ich StartNewObject auf mit dem Ergebnis (also dem neuen Objekt) als Parameter, dort wird u.a. der Pointer Parent.Next gesetzt auf das neue Objekt.

b) man verkettet rückwärts - die Adresse von Parent ist ja bekannt und kann als self.Previous gespeichert werden.

Gruss Reinhard
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 09:53 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