Checkboxen

  • Guten tag, ich habe ma wieder eine frage :P.

    habe noch keine große erfahrungen mit checkboxen gemacht aber wollt es einfach mal versuchen und zwar:

    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 553, 165, 236, 264)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 352, 48, 97, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 352, 72, 97, 17)
    $Checkbox3 = GUICtrlCreateCheckbox("Checkbox3", 352, 96, 97, 17)
    $Button1 = GUICtrlCreateButton("Button1", 352, 120, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Button2", 432, 120, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]


    Wie mache ich es das ich jeder checkbox einen befehl zuordnen kann nehmen wir jetz zb einen mausklick.

    zb [X] macht mausklick bei A sobald man auf button1 Drückt

    [X] [X] macht mausklick bei A und B sobald man auf button1 Drückt

    [X] [ ] [X] macht Mausklick bei A und C sobald man auf button1 Drückt

  • Hallo sp3333dy!

    Also du weist die Checkboxen aufgaben zu indem du in deiner Wihle 1 neue Case Definierst!

    z.B

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 553, 165, 236, 264)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 352, 48, 97, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 352, 72, 97, 17)
    $Checkbox3 = GUICtrlCreateCheckbox("Checkbox3", 352, 96, 97, 17)
    $Button1 = GUICtrlCreateButton("Button1", 352, 120, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Button2", 432, 120, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Checkbox1
    MsgBox(0, 'Test', 'Hallo du hast mich aufgeruffen!')
    EndSwitch
    WEnd

    [/autoit]


    LG Kleiner

  • So sieht es bis jetz aus, wenn man den 1. kasten klickt kommt ausgabe A und wenn man ihn nich anklickt uasgabe D wie mach ich es jetz das wenn ich kasten 1 und 2 anklicke das ausgabe A und B kommt ?


    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 553, 165, 236, 264)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 352, 48, 97, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 352, 72, 97, 17)
    $Checkbox3 = GUICtrlCreateCheckbox("Checkbox3", 352, 96, 97, 17)
    $Button1 = GUICtrlCreateButton("Button1", 352, 120, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Button2", 432, 120, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    if GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
    msgbox("lol","lol","lol")
    Else
    msgbox("rofl","rofl","rofl")
    EndIf
    Endswitch
    WEnd

    [/autoit]
  • ICh versteh nicht ganz du wohltest oder willst die Checkboxen eine aufgabe zuteilen und in deim (Jetzt) beispiel hast du ein Button eine aufgabe gegeben!
    Was wilst du denn ereichen, oder sage mir was du vorhast mit dem code?

    Edit: wenn du nur prüfen willst ob die check aktiv sind!

    [autoit]

    Case $Button1
    if GUICtrlRead($Checkbox1) = $GUI_CHECKED Then msgbox(0,"lol","$Checkbox1")
    if GUICtrlRead($Checkbox2) = $GUI_CHECKED Then msgbox(0,"lol","$Checkbox2")
    if GUICtrlRead($Checkbox3) = $GUI_CHECKED Then msgbox(0,"lol","$Checkbox3")
    Endswitch
    WEnd

    [/autoit]

    LG Kleiner

  • Hy, ich versuche es noch mal verständlich zu erklären .. also es gibt sagen wir mal 3 Checkboxen (Check1, Check2, Check3) und einen Button (Button1). Nun würde ich gerne wenn ich Check1 makiere und auf den Button1 klicke ein mausklick auf 100x100 machen das is ja kein problem das habe ich hin bekommen oben in den beispiel, nun folgendes ich würde gerne wenn ich Check1 und Check2 makiere und dann auf den button1 klicke soll ein mausklick auf 100x100 und 100x102 gemacht werden, und wenn ich dann noch check3 makiere soll auf zb auf 100x103 geklickt werden sobald man auf den button klickt.

    bekomm es zwar einzelln hin nur weis ich nich wie ich das genau zusammen füge mit den einzellnen checkboxen.

    mit freundlichen grüßen und schonmals danke für eure hilfe =)


    Edit:

    [autoit]

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    if GUICtrlRead($Checkbox1) = $GUI_CHECKED Then msgbox(0,"lol","$Checkbox1")
    if GUICtrlRead($Checkbox2) = $GUI_CHECKED Then msgbox(0,"lol2","$Checkbox2")
    if GUICtrlRead($Checkbox3) = $GUI_CHECKED Then msgbox(0,"lol3","$Checkbox3")
    Endswitch
    WEnd

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


    hat mir sehr geholfen danke ^^

  • Hey!


    Möglichkeit (1)!

    [autoit]

    if GUICtrlRead($Checkbox1) = $GUI_CHECKED And GUICtrlRead($Checkbox2) = $GUI_CHECKED Then msgbox(0,"lol","$Checkbox1 + $Checkbox2")

    [/autoit]

    Vieleicht reicht es!


    LG Kleiner

  • Dieses soll eine GUI werden mit vielen checkboxen, kann man die einstellung auch irg wie speichern von den checkboxen oder is das mit denen nicht möglich ?

    zb wenn ich das programm öffne das noch von der vorherigen saisong die 2 checkboxen angeklickt sidn ?

  • Nakla!


    Bitte, kannst ein wenig speilen mit dem code dann bekommst du das schon hin! [Beispiel]

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 553, 165, 236, 264)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 352, 48, 97, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 352, 72, 97, 17)
    $Checkbox3 = GUICtrlCreateCheckbox("Checkbox3", 352, 96, 97, 17)
    $Button1 = GUICtrlCreateButton("Button1", 352, 120, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Button2", 432, 120, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    If FileExists(@ScriptDir & '\Test.ini') Then
    Local $IniAus = IniReadSection(@ScriptDir & '\Test.ini', "Test")
    If $IniAus[1][1] = 1 Then GUICtrlSetState($Checkbox1, $GUI_CHECKED)
    EndIf

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    _Ini()
    Exit
    Case $Button1
    If GUICtrlRead($Checkbox1) = $GUI_CHECKED And GUICtrlRead($Checkbox2) = $GUI_CHECKED Then MsgBox(0, "lol", "$Checkbox1 + $Checkbox2")
    EndSwitch
    WEnd

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

    Func _Ini()
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED Then
    $Check = 1
    Else
    $Check = 0
    EndIf
    IniWrite(@ScriptDir & '\Test.ini', "Test", 'An-Aus', $Check)
    EndFunc ;==>_Ini

    [/autoit]


    LG Kleiner

  • So bin wieder da, und hab dein script versucht geht alles, nur bekomm ich es nich hin noch weitere checkboxen zu speichern wie mach ich das genau?

    Ich Schilder ma mein ganzes vorhaben eh ich noch 100 fragen stellen muss, wir haben ein GUI Form 1 auf den sind 2 Button einmal der button einstellungen und der button Start, wenn ich auf einstellungen klicke kommt ein weiteres GUI das is das GUI mit den Checkboxen nun wollt ich da ein Button hin machen mit den Button SPeichern.

    Wenn man das gespeichert hat und zb 2 checkboxen von 5 angeklickt hat und gespeichert hat geht man ins erste GUI und kann mit den Button start die befehle ausführen die mit den checkboxen zusammenhängen, und das mehmals wenn man möchte man muss nur auf start klicken deshalb auch das speichern kann mit da jmd evtl so ein beispiel machen ?

    damit ich auch mal durchsteige in der ganzen geschichte würde mich sehr freuen mit freundlichen grüßen

    und noch mals danke an "kleiner27" =)

  • Hey!

    Du kannst alles in Array u. For Next Schleife laufen lassen!

    Beispiel für CheckBox:

    Spoiler anzeigen
    [autoit]

    Local $acheckBox[3][2]=[["Checkbox",1],["Checkbox1",1],["Checkbox2",1]];ArrayIndex mit zwei Spalten $acheckBox[0][0]=[["Checkbox" = Ertste Spalte
    ;$acheckBox[0][1]=[["Checkbox",1] = zweite spalte usw. usw.
    Local $checkErstellen[3];ArrayIndex zum erstellen des Array
    Local $x = 48 ;Start wert
    For $i = 0 To 2;$i = zähler Variable
    ;0 Start ArrayIndex
    ;begint ab 0 = 1 ErsterEintrag zählt bis 2 [0-1-2 = 3]
    $checkErstellen[$i] = GUICtrlCreateCheckbox($acheckBox[$i][0],352,$x,97, 17) ; Erstellung des CheckboxArray
    $x += 24;Start wert + 24
    Next

    [/autoit]

    Beispiel SpeicherCheck:

    Spoiler anzeigen
    [autoit]

    If FileExists(@ScriptDir & '\Test.ini') Then
    Local $IniAus = IniReadSection(@ScriptDir & '\Test.ini', "Test")
    For $i = 1 To UBound($IniAus) -1
    If $IniAus[$i][1] = $acheckBox[$i-1][1] Then GUICtrlSetState($checkErstellen[$i-1], $GUI_CHECKED)
    Next
    EndIf

    [/autoit]


    LG Kleiner

  • Aktueller Stand:

    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 553, 165, 236, 264)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 352, 48, 97, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 352, 72, 97, 17)
    $Checkbox3 = GUICtrlCreateCheckbox("Checkbox3", 352, 96, 97, 17)
    $Button1 = GUICtrlCreateButton("Button1", 352, 120, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Button2", 432, 120, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    If FileExists(@ScriptDir & '\Test.ini') Then
    Local $IniAus = IniReadSection(@ScriptDir & '\Test.ini', "Test")
    If $IniAus[1][1] = 1 Then GUICtrlSetState($Checkbox1, $GUI_CHECKED)
    EndIf

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    _Ini()
    Exit
    Case $Button1
    If GUICtrlRead($Checkbox1) = $GUI_CHECKED And GUICtrlRead($Checkbox2) = $GUI_CHECKED Then MsgBox(0, "lol", "$Checkbox1 + $Checkbox2")
    EndSwitch
    WEnd
    Func _Ini()
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED Then
    $Check = 1
    Else
    $Check = 0
    EndIf
    IniWrite(@ScriptDir & '\Test.ini', "Test", 'An-Aus', $Check)
    EndFunc ;==>_Ini

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

    Das ist er, eine checkbox wird gespeichert aber wie ich es dann mit der 2. mache habe ich probiert udn probiert aber so richtig nich nicht hin bekommen würe über eine einfache llsung auch glücklich :) danke nochmal für alles

    Einmal editiert, zuletzt von sp3333dy (6. Dezember 2009 um 23:16)

  • Hier eine möglichkeit:
    Leider jetzt nicht die "einfache" Variante, dafür hab ich ausgiebig auskommentiert ;)

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 553, 165, 236, 264)
    Dim $Checkbox[3] ; Erstellt einen Array (Ähnlich einer Liste)
    $Checkbox[0] = GUICtrlCreateCheckbox("Checkbox1", 352, 48, 97, 17)
    $Checkbox[1] = GUICtrlCreateCheckbox("Checkbox2", 352, 72, 97, 17)
    $Checkbox[2] = GUICtrlCreateCheckbox("Checkbox3", 352, 96, 97, 17)

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

    ; Ein Array beginnt bei 0. In dem eben erstellten Array "Checkbox" befinden sich nun
    ; die ID's von deinen Checkboxen. Das hat den Vorteil, dass du die Checkboxen im Array
    ; in einer Schleife durchgehen kannst. Das gibt dir mehr flexibilität und hält deinen
    ; Code kurz! Am besten mal das AutoIt-Tutorial zum Kapitel Arrays durchlesen.
    _ArrayDisplay($Checkbox,"ID's")
    _Laden()
    $Button1 = GUICtrlCreateButton("Check", 352, 120, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Button2", 432, 120, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    _Speichern()
    Exit
    Case $Button1
    MsgBox(0,"ID's der gewählten Checkboxen","Ausgewählt sind: "&@CR&_CheckCheckBoxen())
    Case $Button2

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

    EndSwitch
    WEnd

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

    Func _CheckCheckBoxen()
    Local $sSelected
    For $i = 0 to UBound($Checkbox)-1 ; geht alle Elemente im Array Checkbox durch.
    If GUICtrlRead($Checkbox[$i]) = $GUI_CHECKED Then ; falls die Checkbox angeklickt war,
    $sSelected = $sSelected & "," & $Checkbox[$i] ; füge sie zu dem String hinzu.
    ;Wenn zb Checkbox 1 und 2 ausgewählt sind, ergibt das zB: ",4,5"
    EndIf
    Next
    $sSelected = StringTrimLeft($sSelected,1) ; vorangehendes komma abschneiden
    Return $sSelected
    EndFunc

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

    Func _Speichern()
    $selected = _CheckCheckBoxen()
    $Array = StringSplit($selected,",") ; Teilt den String (den du auch beim klick auf den Check Button siehst, dan den Kommas aus, und schreibt das ergebniss in einen Array.
    ;~ _ArrayDisplay($Array,"gewähle Checkboxen") ; der array sieht so aus
    IniDelete("config.ini","Checkbox");löscht den alten Bereich aus der ini. (nicht unbedingt nötig, aber zur sicherheit mal eingebaut)
    For $i = 1 to $Array[0]; das erste Element beinhaltet die Anzahl der gefundenen Elemente
    IniWrite("config.ini","Checkbox",$Array[$i],1) ; schreibt die aktuelle checkbox id in die Ini, gefolgt von "1". Das gibt an, dass die Checkbox markiert war.
    Next
    EndFunc

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

    Func _Laden()
    $Array = IniReadSection("config.ini","Checkbox") ; Liest den Ini Bereich "Checkbox" in einen Array.
    ;~ _ArrayDisplay($Array,"in ini gefunden") ; hier sind die Checkboxen IDs zu finden, die vorher von _speichern() in die ini geschrieben wurden.
    For $i = 1 to $Array[0][0] ; das erste Element ([0][0], es ein 2dimensionaler Array ist)beinhaltet die Anzahl der gefundenen Elemente
    If $Array[$i][1] = 1 Then GUICtrlSetState($Array[$i][0],$GUI_CHECKED) ; falls eine 1 dahinter steht (also wenn sie beim speichern ausgewählt war,(siehe zeile 53), dann klicke sie auch jetzt an.
    Next
    EndFunc

    [/autoit]
  • danke für die hilfe aber bei mir erscheint keine GUI zwar schon aber nur ein fenster mit tabellen drinne oO ? und nich die 3 checkboxen :P

  • Ich hatte mal vor längere Zeit was geschrieben.

    Vielleicht hilft es dir ja.

    Spoiler anzeigen
    [autoit]


    ;Coded by UEZ
    #include <WindowsConstants.au3>

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

    #include <StructureConstants.au3>
    #include <GUIConstantsEx.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Test", 237, 143)
    $Checkbox1 = GUICtrlCreateCheckbox("Convert X", 8, 8, 97, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Convert Y", 8, 40, 97, 17)
    $Checkbox3 = GUICtrlCreateCheckbox("Convert Z", 8, 72, 97, 17)
    $Input1 = GUICtrlCreateInput("", 105, 8, 121, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Input2 = GUICtrlCreateInput("", 105, 40, 121, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Input3 = GUICtrlCreateInput("", 105, 72, 121, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Button1 = GUICtrlCreateButton("Load", 8, 104, 75, 25, 0)
    $Button2 = GUICtrlCreateButton("Save", 153, 104, 75, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Button1
    Load()

    Case $Button2
    Save()

    Case $Checkbox1
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) Then
    GUICtrlSetState($Input1, $GUI_ENABLE)
    Else
    GUICtrlSetState($Input1, $GUI_DISABLE)
    EndIf

    Case $Checkbox2
    If BitAND(GUICtrlRead($Checkbox2), $GUI_CHECKED) Then
    GUICtrlSetState($Input2, $GUI_ENABLE)
    Else
    GUICtrlSetState($Input2, $GUI_DISABLE)
    EndIf

    Case $Checkbox3
    If BitAND(GUICtrlRead($Checkbox3), $GUI_CHECKED) Then
    GUICtrlSetState($Input3, $GUI_ENABLE)
    Else
    GUICtrlSetState($Input3, $GUI_DISABLE)
    EndIf
    EndSwitch
    WEnd

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

    Func Save()
    Local $ini, $save_file, $filename, $dummy_array
    Local $filename_suffix = ".ini"
    Local $save_path = @ScriptDir
    $filename = ""
    $filename = FileSaveDialog("Save Project Request Form", $save_path, "Ini Files (*" & $filename_suffix & ")|All Files(*.*)", 16)
    If $filename <> "" Then
    $dummy_array = StringSplit($filename, ".")
    If UBound($dummy_array) > 0 Then
    $filename = $dummy_array[1] & $filename_suffix
    Else
    $filename = $filename_suffix
    EndIf
    If Not @error Then
    $ini = "[Input Section]" & @CRLF & _
    "Convert X=" & GUICtrlRead($Input1) & @CRLF & _
    "Convert Y=" & GUICtrlRead($Input2) & @CRLF & _
    "Convert Z=" & GUICtrlRead($Input3) & @CRLF & @CRLF & _
    "[Checkbox Section]" & @CRLF & _
    "Checkbox1=" & GUICtrlRead($Checkbox1) & @CRLF & _
    "Checkbox2=" & GUICtrlRead($Checkbox2) & @CRLF & _
    "Checkbox3=" & GUICtrlRead($Checkbox3) & @CRLF
    FileOpen($filename, 2)
    FileWrite($filename, $ini)
    FileClose($filename)
    EndIf
    EndIf
    EndFunc ;==>Save

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

    Func Load()
    Local $filename, $dummy_array, $line
    Local $filename_suffix = ".ini"
    Local $load_path = @ScriptDir
    $filename = ""
    $filename = FileOpenDialog("Load Project Request Form", $load_path, "Ini Files (*" & $filename_suffix & ")|All Files(*.*)", 1)
    If $filename <> "" Then
    $filename = FileOpen($filename, 0)
    If Not @error Then
    While 1
    $line = FileReadLine($filename)
    If @error = -1 Then ExitLoop
    If StringInStr($line, "Convert X=") Then GUICtrlSetData($Input1, StringMid($line, StringInStr($line, "=") + 1))
    If StringInStr($line, "Convert Y=") Then GUICtrlSetData($Input2, StringMid($line, StringInStr($line, "=") + 1))
    If StringInStr($line, "Convert Z=") Then GUICtrlSetData($Input3, StringMid($line, StringInStr($line, "=") + 1))
    If StringInStr($line, "Checkbox1=") = True And StringMid($line, StringInStr($line, "=") + 1) = 1 Then
    GUICtrlSetState($Checkbox1, $GUI_CHECKED)
    GUICtrlSetState($Input1, $GUI_ENABLE)
    EndIf
    If StringInStr($line, "Checkbox1=") = True And StringMid($line, StringInStr($line, "=") + 1) = 4 Then
    GUICtrlSetState($Checkbox1, $GUI_UNCHECKED)
    GUICtrlSetState($Input1, $GUI_DISABLE)
    EndIf
    If StringInStr($line, "Checkbox2=") = True And StringMid($line, StringInStr($line, "=") + 1) = 1 Then
    GUICtrlSetState($Checkbox2, $GUI_CHECKED)
    GUICtrlSetState($Input2, $GUI_ENABLE)
    EndIf
    If StringInStr($line, "Checkbox2=") = True And StringMid($line, StringInStr($line, "=") + 1) = 4 Then
    GUICtrlSetState($Checkbox2, $GUI_UNCHECKED)
    GUICtrlSetState($Input2, $GUI_DISABLE)
    EndIf
    If StringInStr($line, "Checkbox3=") = True And StringMid($line, StringInStr($line, "=") + 1) = 1 Then
    GUICtrlSetState($Checkbox3, $GUI_CHECKED)
    GUICtrlSetState($Input3, $GUI_ENABLE)
    EndIf
    If StringInStr($line, "Checkbox3=") = True And StringMid($line, StringInStr($line, "=") + 1) = 4 Then
    GUICtrlSetState($Checkbox3, $GUI_UNCHECKED)
    GUICtrlSetState($Input3, $GUI_DISABLE)
    EndIf
    WEnd
    FileClose($filename)
    EndIf
    EndIf
    EndFunc ;==>Load

    [/autoit]

    Mit Load bzw. Save kannst du den Zustand laden oder speichern. Wenn die Checkbox aktiviert ist, kannst du in das Feld was reinschreiben.

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Ich hätte einfach am schluss einige If abfragen gemacht. Und halt einfach abgefragt ob die Checkbox angeklickt ist, wenn ja, dann mausklick

    So:

    [autoit]


    if guictrlread($checkbox1)= $GUI_Cheked then mouseclick("left",100,1000)
    if guictrlread($checkbox2)=$GUI_CHECKED then mouseclick("left",100,102)

    [/autoit]

    Computers are like Airconditioning. They don´t work with open Windows.

  • UEZ das wäre perfekt, kannst du mir vl die input felder rauß schneiden ohne fehler ich brauch da nen paar stunden .. du vl nich so labge weil ich noch nich so viel mit diesen input dingern gearbeitet habe :P


    mit freundlichen grüßen

  • danke für die hilfe aber bei mir erscheint keine GUI zwar schon aber nur ein fenster mit tabellen drinne oO ? und nich die 3 checkboxen

    Das ist der array. Der wird mit _Arraydisplay() angezeigt, damit du siehst wie der aussieht (war dazu gedacht, dass du das leichter verstehst) Einfach zumachen und das GUI erscheint.

  • Moin Leute!

    Die hilfe ist ja schon weit voran geschriten! :D

    Meine lösung:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 553, 165, 236, 264)
    ; ,---Array mit 3 Inhalten 2 Spalten
    ; |
    ; |
    ; | Index = 3 1 Spalte Index = 3 2 Spalte
    ; | ,-$acheckBox[0][0] Checkbox $acheckBox[0][1] 1
    ; | |
    ; | |,$acheckBox[1][0] Checkbox1 $acheckBox[1][1] 1
    ; | |
    ; | |,$acheckBox[2][0] Checkbox $acheckBox[2][1] 1
    ; | |
    ; | |
    ; | |
    ; | |
    Local $acheckBox[3][2] = [["Checkbox", 1],["Checkbox1", 1],["Checkbox2", 1]]
    ;
    ; ,-Neu ArrayVariable dür die Erstellung der CheckBoxen
    Local $checkErstellen[3], $x = 48;$x ist eine variable zum erstellen der Checkbox in unserm fall ist die erste GUICtrlCreateCheckbox('CheckBox',352,48,97, 17) $x = 48
    ; ,-- $i = Zähler Variable zweite GUICtrlCreateCheckbox('CheckBox',352,92,97, 17) $x + 24
    ; | Drite GUICtrlCreateCheckbox('CheckBox',352,140,97, 17)$x + 24
    ; |,- Wir weisen $i 0 zu das beseutet das $i ab 0 anfängt zu zählen
    ; |
    ; | ,1 ,2 ,3
    ; |,- In unserem Beispiel bis To 2 also bis 2 bedeutet 0 - 1 - 2
    ; |
    ; |- $i = 0 CheckBox 1 erstellen dann $i = 1 CheckBox 2 erstellen dann $i = 2 CheckBox 3 erstellen
    ; |
    For $i = 0 To 2
    ; ,Ihr kommt unsere erstes Array zu einsatz für sie nahmen der einzelne Checkbox
    ; |
    ; |,$i = 0 dann hat auch $acheckBox[0][0] = "Checkbox" -> 1
    ; |
    ; |,$i = 1 dann hat auch $acheckBox[1][0] = "Checkbox1" -> 2
    ; |
    ; |,$i = 2 dann hat auch $acheckBox[2][0] = "Checkbox2" -> 3
    ; |
    ; |
    ; |
    ; |
    $checkErstellen[$i] = GUICtrlCreateCheckbox($acheckBox[$i][0], 352, $x, 97, 17)
    $x += 24
    Next

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

    $Button1 = GUICtrlCreateButton("Button1", 352, 120, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Button2", 432, 120, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    If FileExists(@ScriptDir & '\Test.ini') Then
    Local $IniAus = IniReadSection(@ScriptDir & '\Test.ini', "Test")
    ;
    ;
    ;, (1) Bei der *.Ini auslesung ist das verhalten gleich auser das bei den ini Array[0][0] alle einträge beinhaltet
    ;
    ;, (2) Also fangen wir von 1 und nicht von 0 an zu Zähle Beipiel Array[0][0] wird ausgelesen z.B kommt 4-4 raus also 4 schlüssel 4 werte beinhaltet die *.ini
    ;- in unserm fall brauchen wir den Index nicht darum Array[1][0] fangen wir an aber wir wollen ja nicht den schlüssel sondern den wert also fangen wir von
    ;- Array[1][1] an!
    ;
    For $i = 1 To UBound($IniAus) - 1
    ;
    ; ,Ihr kommt man durcheinander weil beispil iniArray[1][1] erster eintrag
    ; | $acheckBox[1][1] zweiter eintrag
    ; |vergleichen wir die beiden würde wir iniArray[1][1] = 1 und $acheckBox[1][1] = 2, eigentlich soll $acheckBox[0][1] = 1 eintrag
    ; |sein darum $i -1 erklärung $acheckBox[$i = 1 -1 wieder 0][1]
    If $IniAus[$i][1] = $acheckBox[$i - 1][1] Then GUICtrlSetState($checkErstellen[$i - 1], $GUI_CHECKED)
    Next
    EndIf

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    _Ini()
    Exit
    Case $Button1
    For $i = 0 To UBound($checkErstellen) - 1;-Ihr benutzen wir [ UBound ] weil alle Prüfen werden können ohne fehler | Prüfen welche CheckBox Aktiv ist
    If GUICtrlRead($checkErstellen[$i]) = $GUI_CHECKED Or GUICtrlRead($checkErstellen[$i]) = $GUI_CHECKED Or GUICtrlRead($checkErstellen[$i]) = $GUI_CHECKED Then MsgBox(0, "Welche Check Aktiv", $acheckBox[$i][0])
    Next
    EndSwitch
    WEnd

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

    Func _Ini();---Speichern der Aktiven CheckBox
    For $i = 0 To UBound($checkErstellen) - 1
    If BitAND(GUICtrlRead($checkErstellen[$i]), $GUI_CHECKED) = $GUI_CHECKED Then
    $Check = 1 ;- wenn Aktiv = 1 Speichern
    Else
    $Check = 0
    EndIf
    IniWrite(@ScriptDir & '\Test.ini', "Test", $acheckBox[$i][0], $Check)
    Next
    EndFunc ;==>_Ini

    [/autoit]

    Ein bischen soltest du schon selber machen gut jetzt hast du alles was du braucht aber der lernefeckt ist weit aus geringer!

    LG Kleiner