AGB  ·  Datenschutz  ·  Impressum  







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

Komponenten einer Groupbox durchlaufen

Ein Thema von Cöster · begonnen am 25. Mär 2007 · letzter Beitrag vom 25. Mär 2007
Antwort Antwort
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#1

Komponenten einer Groupbox durchlaufen

  Alt 25. Mär 2007, 19:44
Hi!

Wie kann man alle Komponenten einer Groupbox mit einer Schleife durchlaufen? Ich hab's über Components probiert, aber ComponentsCount ist komischerweise 0.

Ist das überhaupt möglich?
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Komponenten einer Groupbox durchlaufen

  Alt 25. Mär 2007, 19:56
Alle Komponenten, deren Owner = deine groupbox ist, solltest du da erreichen können.

Schau mal in den Designer bzw. deine Struktur. Eventuell liegen die Konmponenten nur über der Groupbox auf der Form.
Lukas Erlacher
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Komponenten einer Groupbox durchlaufen

  Alt 25. Mär 2007, 20:20
Hm, funzt irgendwie nicht. So sieht der Code aus:

Delphi-Quellcode:
for I := 0 to ComponentCount - 1 do
   if (Components[I].Owner = GroupBox1) then
      TControl(Components[I]).Enabled := True;
In der Struktur sind alle Komponenten übereinander angeordnet, dort kann ich also nicht sehen, ob die Groupbox der Owner ist. Ich kann die Komponenten zur Designzeit aber nicht aus der Groupbox rausschieben. Deswegen meine ich, dass die Groupbox der Owner sein müsste.

Wie geht's dann?
  Mit Zitat antworten Zitat
pszopp

Registriert seit: 7. Sep 2005
Ort: Alsdorf
95 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Komponenten einer Groupbox durchlaufen

  Alt 25. Mär 2007, 20:26
Hallo Cöster,

normalerweise ist der Owner einer Komponente immer das Formular, auf dem die Komponente im Designer gelegt wurde. Über den Owner einer Komponente kann man dann mit ComponentCount und Components[] die Komponenten abfragen.

Eine Lösung wäre also:
Delphi-Quellcode:
for ii := 0 to Pred(aForm.ComponentCount) do begin
  // do something
end; // for ii
Leider bekommt man dann alle Komponenten des Formulars und nicht nur jene, die in der GroupBox liegen.
Da die Komponenten in der GroupBox alle die GroupBox als Parent haben, kann man mit ControlCount und Controls[] arbeiten.

Das sieht dann so aus:
Delphi-Quellcode:
for ii := 0 to Pred(aGroupBox.ControlCount) do begin
  ShowMessage(aGroupBox.Controls[ii].Name);
end; // for ii
** ungetestet **

Viele Grüße,
pszopp
www.pstipp.de | Tippseite zur Formel 1 und Fußball WM/EM - kostenlos und Just-For-Fun
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Komponenten einer Groupbox durchlaufen

  Alt 25. Mär 2007, 20:37
Zitat von pszopp:
Delphi-Quellcode:
for ii := 0 to Pred(aGroupBox.ControlCount) do begin
  ShowMessage(aGroupBox.Controls[ii].Name);
end; // for lk
Das klappt, danke
  Mit Zitat antworten Zitat
Antwort Antwort


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