Ilse,
BugFix (in Post #4) hat mich auf die Idee gebracht einfach den Style umzustellen. Dann müsste es ohne 2D-Array und ohne Labels funktionieren. Schau Dir mal mein Beispiel an (funktioniert unter XP).
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1) ;i mehr Macros, leichtere Fenstertechnik
[/autoit] [autoit][/autoit] [autoit]#region ### START Koda GUI section ###
GUICreate("CheckboxColor", 339, 550)
GUISetOnEvent($GUI_EVENT_CLOSE, "_ende")
GUICtrlCreateGroup("", 10, 10, 200, 500)
;i #### Start Checkboxarray für 25 Checkboxen ###
DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 0)
Global $aCkb[25] ;i ArrayVariablen (kl. a am Anfang) erstellen der Controls
;i a- Array + Checkbox-ckb
For $i = 0 To 24 ;i statisch kein Ubound - erstellen von 0 - 24 = 25 Checkboxen
$aCkb[$i] = GUICtrlCreateCheckbox(' Unchecked ' & $i + 1, 30, 30 + $i * 19, 120, 13)
GUICtrlSetOnEvent(-1, "_state")
Next
DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 7)
;i #### Ende Checkboxarray ###
GUICtrlCreateGroup("", -99, -99, 1, 1) ;i Gruppe schliessen
$ckbAll = GUICtrlCreateCheckbox(' All off/on', 30, 520, 100, 20)
GUICtrlSetOnEvent(-1, "_all")
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
While Sleep(1000)
WEnd
Func _state()
For $i = 0 To 24
If BitAND(GUICtrlRead($aCkb[$i]), 1) Then
GUICtrlSetData($aCkb[$i], ' Checked ' & $i + 1)
GUICtrlSetColor($aCkb[$i], 0x0000FF)
Else
GUICtrlSetData($aCkb[$i], ' Unchecked ' & $i + 1)
GUICtrlSetColor($aCkb[$i], 0x000000)
EndIf
Next
EndFunc ;==>_state
Func _all()
If BitAND(GUICtrlRead($ckbAll), 1) Then
GUICtrlSetData($ckbAll, " All off")
For $i = 0 To 24 ;i statisch kein Ubound
GUICtrlSetState($aCkb[$i], 1)
Next
Else
GUICtrlSetData($ckbAll, " All on")
For $i = 0 To 24 ;i statisch kein Ubound
GUICtrlSetState($aCkb[$i], 4)
Next
EndIf
_state()
EndFunc ;==>_all
Func _ende()
Exit
EndFunc ;==>_ende
; Ende