GuiCtrlSetState will nicht

    • Offizieller Beitrag

    Du musst die Variable $Abstand vergrößern, sodass die Progressbar weiter weg vom Label ist.
    Außerdem ist es wohl ganz hilfreich beim Label die Breite und Höhe anzugeben (anpassen, siehe Kommentar).

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    #include <GUIConstantsEx.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    $Gui = GUICreate("Namen", 701, 571, 208, 178)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_End")
    $Pic1 = GUICtrlCreatePic("C:\Users\Ilse\Desktop\Backbild.jpg", -4, -4, 805, 629)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $SelectAll = GUICtrlCreateButton("Select all", 568, 424, 75, 25)
    GUICtrlSetOnEvent(-1, "_SelectAll")
    ;$Alle = GUICtrlCreateButton("Alle", 304, 232, 75, 25)

    [/autoit] [autoit][/autoit] [autoit]

    Dim $var[19][2] = [[18,0],[1, 'Petra'],[2, 'Klaus'],[3, 'Lissi'],[4, 'Norbert'],[5, 'Paul'],[6, 'Carla'],[7, 'Fritz'],[8, 'Tanja'],[9, 'Bert'], _
    [10, 'Rosi'],[11, 'Peter'],[12, 'Lena'],[13, 'Ralf'],[14, 'Theo'],[15, 'Zora'],[16, 'Birgit'],[17, 'Sandra'],[18, 'Tom']]

    [/autoit] [autoit][/autoit] [autoit]

    ;~ $var = IniReadSection(@ScriptDir & '\meine.ini', "Titel")

    [/autoit] [autoit][/autoit] [autoit]

    ;~ If @error Then
    ;~ MsgBox(4096, "", "Error occurred, probably no INI file.")
    ;~ EndIf
    _ArrayDelete($var, 0)
    ;Local $aktiv = True
    Dim $arControl[UBound($var)][2], $arProgress[UBound($var)]

    [/autoit] [autoit][/autoit] [autoit]

    Dim $Links = 50
    Dim $Oben = 20
    Dim $Zwischen = 25
    Dim $Zeilen = 8 ; <- hier die Anzahl der Zeilen eintragen
    Dim $Abstand = 220 ; <- hier den Abstand zwischen den Spalten eintragen

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To UBound($arControl) - 1
    $arControl[$i][0] = GUICtrlCreateCheckbox('', $Links + Int($i / $Zeilen) * $Abstand, $Oben + Mod($i, $Zeilen) * $Zwischen, 20, 20)
    GUICtrlSetFont(-1, 12, 500, 0, "Arial") ; hier habe ich die Schriftgröße geändert
    $arControl[$i][1] = GUICtrlCreateLabel($var[$i][1], $Links + 20 + Int($i / $Zeilen) * $Abstand, $Oben + Mod($i, $Zeilen) * $Zwischen, 60, 20) ; <- hier die Breite (60) und Höhe (20) angeben.
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetOnEvent(-1, "_CheckboxSelect")
    GUICtrlSetFont(-1, 12, 500, 0, "Arial") ; hier habe ich die Schriftgröße geändert
    $arProgress[$i] = GUICtrlCreateProgress($Links + 80 + Int($i / $Zeilen) * $Abstand, $Oben + Mod($i, $Zeilen) * $Zwischen, 70, 20)
    Next
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While Sleep(1000)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _End()
    Exit
    EndFunc ;==>_End

    [/autoit] [autoit][/autoit] [autoit]

    Func _SelectAll()
    For $i = 0 To UBound($arControl) - 1
    GUICtrlSetState($arControl[$i][0], $gui_checked)
    Next
    EndFunc ;==>_SelectAll

    [/autoit] [autoit][/autoit] [autoit]

    Func _CheckboxSelect()
    Local $ID = @GUI_CtrlId - 1
    If BitAND(GUICtrlRead($ID), $gui_checked) Then
    GUICtrlSetState($ID, $gui_unchecked)
    Else
    GUICtrlSetState($ID, $gui_checked)
    EndIf
    EndFunc ;==>_CheckboxSelect

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Hallo Oscar,

    konnte mich jetzt erst melden.
    Hatte noch mit anderen Problemen zu kämpfen.

    Leider klappt das so nicht!
    Das hatte ich auch schon probiert!

    Ich habe mal in deinem Code alles geändert.
    Schau dir mal die ersten beiden Namen an! Petra und Klaus

    Die Abstände wurden ebenfalls vergrößert
    Geht trotzdem nicht!

    [autoit]


    #include <Array.au3>
    #include <GUIConstantsEx.au3>

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Opt("GUIOnEventMode", 1)

    [/autoit][autoit][/autoit][autoit]

    $Gui = GUICreate("Namen", 701, 571, 208, 178)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_End")
    $Pic1 = GUICtrlCreatePic("C:\Users\Ilse\Desktop\Backbild.jpg", -4, -4, 805, 629)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $SelectAll = GUICtrlCreateButton("Select all", 568, 424, 75, 25)
    GUICtrlSetOnEvent(-1, "_SelectAll")
    ;$Alle = GUICtrlCreateButton("Alle", 304, 232, 75, 25)

    [/autoit][autoit][/autoit][autoit]

    Dim $var[19][2] = [[18,0],[1, 'Petra-Müller'],[2, 'Klaus Schmidt'],[3, 'Lissi'],[4, 'Norbert'],[5, 'Paul'],[6, 'Carla'],[7, 'Fritz'],[8, 'Tanja'],[9, 'Bert'], _
    [10, 'Rosi'],[11, 'Peter'],[12, 'Lena'],[13, 'Ralf'],[14, 'Theo'],[15, 'Zora'],[16, 'Birgit'],[17, 'Sandra'],[18, 'Tom']]

    [/autoit][autoit][/autoit][autoit]

    ;~ $var = IniReadSection(@ScriptDir & '\meine.ini', "Titel")

    [/autoit][autoit][/autoit][autoit]

    ;~ If @error Then
    ;~ MsgBox(4096, "", "Error occurred, probably no INI file.")
    ;~ EndIf
    _ArrayDelete($var, 0)
    ;Local $aktiv = True
    Dim $arControl[UBound($var)][2], $arProgress[UBound($var)]

    [/autoit][autoit][/autoit][autoit]

    Dim $Links = 50
    Dim $Oben = 20
    Dim $Zwischen = 25
    Dim $Zeilen = 8 ; <- hier die Anzahl der Zeilen eintragen
    Dim $Abstand = 220 ; <- hier den Abstand zwischen den Spalten eintragen

    [/autoit][autoit][/autoit][autoit]

    For $i = 0 To UBound($arControl) - 1
    $arControl[$i][0] = GUICtrlCreateCheckbox('', $Links + Int($i / $Zeilen) * $Abstand, $Oben + Mod($i, $Zeilen) * $Zwischen, 20, 20)
    GUICtrlSetFont(-1, 12, 500, 0, "Arial") ; hier habe ich die Schriftgröße geändert
    $arControl[$i][1] = GUICtrlCreateLabel($var[$i][1], $Links + 20 + Int($i / $Zeilen) * $Abstand, $Oben + Mod($i, $Zeilen) * $Zwischen, 60, 20) ; <- hier die Breite (60) und Höhe (20) angeben.
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetOnEvent(-1, "_CheckboxSelect")
    GUICtrlSetFont(-1, 12, 500, 0, "Arial") ; hier habe ich die Schriftgröße geändert
    $arProgress[$i] = GUICtrlCreateProgress($Links + 120 + Int($i / $Zeilen) * $Abstand, $Oben + Mod($i, $Zeilen) * $Zwischen, 70, 20)
    Next
    GUISetState(@SW_SHOW)

    [/autoit][autoit][/autoit][autoit]

    While Sleep(1000)
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func _End()
    Exit
    EndFunc ;==>_End

    [/autoit][autoit][/autoit][autoit]

    Func _SelectAll()
    For $i = 0 To UBound($arControl) - 1
    GUICtrlSetState($arControl[$i][0], $gui_checked)
    Next
    EndFunc ;==>_SelectAll

    [/autoit][autoit][/autoit][autoit]

    Func _CheckboxSelect()
    Local $ID = @GUI_CtrlId - 1
    If BitAND(GUICtrlRead($ID), $gui_checked) Then
    GUICtrlSetState($ID, $gui_unchecked)
    Else
    GUICtrlSetState($ID, $gui_checked)
    EndIf
    EndFunc ;==>_CheckboxSelect

    [/autoit][autoit][/autoit][autoit][/autoit]

    ;) Grüße Ilse

    • Offizieller Beitrag

    Du musst auch die Breite des Labels anpassen:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    #include <GUIConstantsEx.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    $Gui = GUICreate("Namen", 701, 571, 208, 178)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_End")
    $Pic1 = GUICtrlCreatePic("C:\Users\Ilse\Desktop\Backbild.jpg", -4, -4, 805, 629)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $SelectAll = GUICtrlCreateButton("Select all", 568, 424, 75, 25)
    GUICtrlSetOnEvent(-1, "_SelectAll")
    ;$Alle = GUICtrlCreateButton("Alle", 304, 232, 75, 25)

    [/autoit] [autoit][/autoit] [autoit]

    Dim $var[19][2] = [[18,0],[1, 'Petra-Müller'],[2, 'Klaus Schmidt'],[3, 'Lissi'],[4, 'Norbert'],[5, 'Paul'],[6, 'Carla'],[7, 'Fritz'],[8, 'Tanja'],[9, 'Bert'], _
    [10, 'Rosi'],[11, 'Peter'],[12, 'Lena'],[13, 'Ralf'],[14, 'Theo'],[15, 'Zora'],[16, 'Birgit'],[17, 'Sandra'],[18, 'Tom']]

    [/autoit] [autoit][/autoit] [autoit]

    ;~ $var = IniReadSection(@ScriptDir & '\meine.ini', "Titel")

    [/autoit] [autoit][/autoit] [autoit]

    ;~ If @error Then
    ;~ MsgBox(4096, "", "Error occurred, probably no INI file.")
    ;~ EndIf
    _ArrayDelete($var, 0)
    ;Local $aktiv = True
    Dim $arControl[UBound($var)][2], $arProgress[UBound($var)]

    [/autoit] [autoit][/autoit] [autoit]

    Dim $Links = 50
    Dim $Oben = 20
    Dim $Zwischen = 25
    Dim $Zeilen = 8 ; <- hier die Anzahl der Zeilen eintragen
    Dim $Abstand = 220 ; <- hier den Abstand zwischen den Spalten eintragen

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To UBound($arControl) - 1
    $arControl[$i][0] = GUICtrlCreateCheckbox('', $Links + Int($i / $Zeilen) * $Abstand, $Oben + Mod($i, $Zeilen) * $Zwischen, 20, 20)
    GUICtrlSetFont(-1, 12, 500, 0, "Arial") ; hier habe ich die Schriftgröße geändert
    $arControl[$i][1] = GUICtrlCreateLabel($var[$i][1], $Links + 20 + Int($i / $Zeilen) * $Abstand, $Oben + Mod($i, $Zeilen) * $Zwischen, 110, 20) ; <- hier die Breite (60) und Höhe (20) angeben.
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetOnEvent(-1, "_CheckboxSelect")
    GUICtrlSetFont(-1, 12, 500, 0, "Arial") ; hier habe ich die Schriftgröße geändert
    $arProgress[$i] = GUICtrlCreateProgress($Links + 130 + Int($i / $Zeilen) * $Abstand, $Oben + Mod($i, $Zeilen) * $Zwischen, 70, 20)
    Next
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While Sleep(1000)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _End()
    Exit
    EndFunc ;==>_End

    [/autoit] [autoit][/autoit] [autoit]

    Func _SelectAll()
    For $i = 0 To UBound($arControl) - 1
    GUICtrlSetState($arControl[$i][0], $gui_checked)
    Next
    EndFunc ;==>_SelectAll

    [/autoit] [autoit][/autoit] [autoit]

    Func _CheckboxSelect()
    Local $ID = @GUI_CtrlId - 1
    If BitAND(GUICtrlRead($ID), $gui_checked) Then
    GUICtrlSetState($ID, $gui_unchecked)
    Else
    GUICtrlSetState($ID, $gui_checked)
    EndIf
    EndFunc ;==>_CheckboxSelect

    [/autoit]
  • Guten Morgen Oscar,

    huh.. ich hab's jetzt gefunden.
    Ich dachte es hätte mit den Variablen (Höhe,Breite...) zu tun.

    Danke nochmals

    Viele Grüße
    Ilse ;)

  • Hi Ilse,

    ich habe Dir die Funktion "_SelectAll" mal angepasst, schaus Dir mal an! ;)

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    #include <GUIConstantsEx.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    ;##########################################################
    Global $tate = $gui_unchecked
    ;##########################################################

    [/autoit] [autoit][/autoit] [autoit]

    $Gui = GUICreate("Namen", 701, 571, 208, 178)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_End")
    $Pic1 = GUICtrlCreatePic("C:\Users\Ilse\Desktop\Backbild.jpg", -4, -4, 805, 629)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $SelectAll = GUICtrlCreateButton("All on/off", 568, 424, 75, 25)
    GUICtrlSetOnEvent(-1, "_SelectAll")
    ;$Alle = GUICtrlCreateButton("Alle", 304, 232, 75, 25)

    [/autoit] [autoit][/autoit] [autoit]

    Dim $var[19][2] = [[18, 0],[1, 'Petra-Müller'],[2, 'Klaus Schmidt'],[3, 'Lissi'],[4, 'Norbert'],[5, 'Paul'],[6, 'Carla'],[7, 'Fritz'],[8, 'Tanja'],[9, 'Bert'], _
    [10, 'Rosi'],[11, 'Peter'],[12, 'Lena'],[13, 'Ralf'],[14, 'Theo'],[15, 'Zora'],[16, 'Birgit'],[17, 'Sandra'],[18, 'Tom']]

    [/autoit] [autoit][/autoit] [autoit]

    ;~ $var = IniReadSection(@ScriptDir & '\meine.ini', "Titel")

    [/autoit] [autoit][/autoit] [autoit]

    ;~ If @error Then
    ;~ MsgBox(4096, "", "Error occurred, probably no INI file.")
    ;~ EndIf
    _ArrayDelete($var, 0)
    ;Local $aktiv = True
    Dim $arControl[UBound($var)][2], $arProgress[UBound($var)]

    [/autoit] [autoit][/autoit] [autoit]

    Dim $Links = 50
    Dim $Oben = 20
    Dim $Zwischen = 25
    Dim $Zeilen = 8 ; <- hier die Anzahl der Zeilen eintragen
    Dim $Abstand = 220 ; <- hier den Abstand zwischen den Spalten eintragen

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To UBound($arControl) - 1
    $arControl[$i][0] = GUICtrlCreateCheckbox('', $Links + Int($i / $Zeilen) * $Abstand, $Oben + Mod($i, $Zeilen) * $Zwischen, 20, 20)
    GUICtrlSetFont(-1, 12, 500, 0, "Arial") ; hier habe ich die Schriftgröße geändert
    $arControl[$i][1] = GUICtrlCreateLabel($var[$i][1], $Links + 20 + Int($i / $Zeilen) * $Abstand, $Oben + Mod($i, $Zeilen) * $Zwischen, 110, 20) ; <- hier die Breite (60) und Höhe (20) angeben.
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetOnEvent(-1, "_CheckboxSelect")
    GUICtrlSetFont(-1, 12, 500, 0, "Arial") ; hier habe ich die Schriftgröße geändert
    $arProgress[$i] = GUICtrlCreateProgress($Links + 130 + Int($i / $Zeilen) * $Abstand, $Oben + Mod($i, $Zeilen) * $Zwischen, 70, 20)
    Next
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While Sleep(1000)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _End()
    Exit
    EndFunc ;==>_End

    [/autoit] [autoit][/autoit] [autoit]

    ;##########################################################
    Func _SelectAll()
    $tate = BitXOR($tate, $gui_checked, $gui_unchecked)
    For $i = 0 To UBound($arControl) - 1
    GUICtrlSetState($arControl[$i][0], $tate)
    Next
    EndFunc ;==>_SelectAll
    ;##########################################################

    [/autoit] [autoit][/autoit] [autoit]

    Func _CheckboxSelect()
    Local $ID = @GUI_CtrlId - 1
    If BitAND(GUICtrlRead($ID), $gui_checked) Then
    GUICtrlSetState($ID, $gui_unchecked)
    Else
    GUICtrlSetState($ID, $gui_checked)
    EndIf
    EndFunc ;==>_CheckboxSelect

    [/autoit] [autoit][/autoit] [autoit]

    ; Ende

    [/autoit] [autoit][/autoit] [autoit][/autoit]