Achtung Falle!
Zitat von
_frank_:
ich würde aber in dem Fall trotzdem auf ControlCount+Controls zurückgehen, da dies die Schleife verkürzt.
Alle sichtbaren Komponenten (Wie TButton, TEdit, etc.) sind Controls, so sparst du dir da sinnlose Durchläufe.
Hiermit werden nur die Controls der angegebenen Ebene durchlaufen. Liegt in der Ebene z. B. ein Panel und auf diesem weitere Controls, die verändert werden sollen, so werden diese nicht erreicht.
TWinControl.Controls sagt dazu:
Zitat:
Controls ist ein Array mit allen untergeordneten Steuerelementen. Dies sind alle Steuerelemente, die dieses Steuerelement in ihrer Eigenschaft Parent angeben. Die Eigenschaft Controls kann genutzt werden, wenn über den Index und nicht über den Namen auf ein Steuerelement zugegriffen werden soll. Controls kann beispielsweise genutzt werden, um nacheinander auf alle untergeordneten Steuerelemente zuzugreifen.
Verwechseln Sie die Eigenschaft Controls nicht mit der Eigenschaft Components. Die Eigenschaft Controls listet alle Steuerelemente auf, die untergeordnete Steuerelemente dieses Steuerelements sind, während die Eigenschaft Components alle Komponenten aufführt, deren Eigentümer dieses Steuerelement ist. Das Formular ist Eigentümer aller auf ihm platzierten Komponenten, die deshalb in der Eigenschaft Components des Formulars aufgelistet werden, auch wenn es sich um die untergeordneten Fenster eines Steuerelements im Formular handelt.
Controls ist eine schreibgeschützte Eigenschaft. Verwenden Sie die Methoden InsertControl oder RemoveControl , um ein untergeordnetes Steuerelement hinzuzufügen oder zu entfernen. Soll ein untergeordnetes Steuerelement einer anderen übergeordneten Komponente ( Parent ) zugeordnet werden, weisen Sie der Eigenschaft Parent des Steuerelements einen neuen Wert zu. Dadurch wird die Methode RemoveControl der bisher übergeordneten Komponente und anschließend die Methode InsertControl der neuen übergeordneten Komponente aufgerufen
Gruß
onlinekater