Hallo zusammen,
gibt es eine Möglichkeit die Funktion GUICtrlSetState() auf alle Buttons gleichzeitig anzuwenden?
Meine GUI hat 46 Buttons und es ist ziemlich mühselig jeden einzelnen Button mit $GUI_DISABLE zu deaktivieren
Schonmal Danke
Eigenschaften von allen Buttons ändern
-
GreenHornBaldi -
11. Januar 2016 um 17:08 -
Erledigt
-
-
- Offizieller Beitrag
Array benutzen!
Alle IDs im Array speichern und dann mit einer Schleife den Status entsprechend setzen. -
Da es manchmal auch von Vorteil ist wenn man den Zweck einzelner Buttons anhand des Variablennamens im Quellcode erkennen kann bietet sich neben der Array Variante auch die strukturierte Erstellung der GUI Controls an. dabei kann das nicht sichtbare "dummycontrol" hilfreich sein.
Beispiel:
AutoIt
Alles anzeigen; GUI Controls oben $bIDObenStart = GUICtrlCreateDummy() ;... $bOK = GUICtrlCreateButton(...) $bAbort = GUICtrlCreateButton(...) $bHilfe = GUICtrlCreateButton(...) ;... $bIDObenEnd = GUICtrlCreateDummy() ; GUI Controls unten $bIDUntenStart = GUICtrlCreateDummy() ;... $bOKunten = GUICtrlCreateButton(...) $bAbortunten = GUICtrlCreateButton(...) $bHilfeunten = GUICtrlCreateButton(...) ;... $bIDUntenEnd = GUICtrlCreateDummy() ;... For $i = $bIDObenStart +1 To $bIDObenEnd -1 GUICtrlSetState($i,$GUI_HIDE) Next
Welche Lösung mehr Sinn macht kommt auf den Anwendungsfall an. Wenn die Controls alle die selbe Aufgabe haben (z.B. ein Schachbrett aus Buttons) ist ein Array mit Sicherheit die sinnvollere Variante. Gerade bei einem Schachbrett oder Vergleichbarem wird die Controlerstellung so auch extremst vereinfacht und verkürzt. -
Es gibt auch noch die Möglichkeit, ein assoziatives Array zu verwenden. So kann man jedem Control noch einen individuellen Namen zuweisen, man kann aber auch alle IDs in einer Schleife durchgehen.