Check Box erst Aktiv durch Boutton

    • Check Box erst Aktiv durch Boutton

      Hiho,

      Ich habe heute mir mal Auto it angeschaut und möchte mir nun ein kleines
      Tool Proggen womit man mit mehreren Checkboxen verschiedene Programme
      wählen kann und dann durch drücken des "Start" Bouttens allle angekreuzten
      Programme startet. Nun weis ich aber nur wie es geht wenn man auf die Checkbox klickt und dann gleich das Programm startet.

      So sieht mein Bisheriger Erfolg aus:

      C-Quellcode

      1. #include <ButtonConstants.au3>
      2. #include <GUIConstantsEx.au3>
      3. #include <StaticConstants.au3>
      4. #include <TabConstants.au3>
      5. #include <WindowsConstants.au3>
      6. #Region ### START Koda GUI section ### Form=
      7. $Form2 = GUICreate("Tabbed Notebook Dialog", 422, 316, 302, 218)
      8. GUISetIcon("D:\005.ico")
      9. $Button1 = GUICtrlCreateButton("Programm/e Starten", 8, 264, 393, 33, $WS_GROUP)
      10. $PageControl1 = GUICtrlCreateTab(8, 8, 396, 256)
      11. GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
      12. $TabSheet1 = GUICtrlCreateTabItem("Programme")
      13. $Checkbox1 = GUICtrlCreateCheckbox("Programm 1", 16, 56, 97, 25)
      14. GUICtrlSetFont(-1, 8, 400, 0, "Arial")
      15. $Checkbox2 = GUICtrlCreateCheckbox("Programm 2", 16, 88, 97, 17)
      16. GUICtrlSetFont(-1, 8, 400, 0, "Arial")
      17. $Checkbox3 = GUICtrlCreateCheckbox("Programm 3", 16, 112, 73, 25)
      18. GUICtrlSetFont(-1, 8, 400, 0, "Arial")
      19. $Checkbox4 = GUICtrlCreateCheckbox("Programm 4", 16, 144, 73, 17)
      20. GUICtrlSetFont(-1, 8, 400, 0, "Arial")
      21. $Checkbox5 = GUICtrlCreateCheckbox("Programm 5", 16, 168, 73, 17)
      22. GUICtrlSetFont(-1, 8, 400, 0, "Arial")
      23. $TabSheet2 = GUICtrlCreateTabItem("Info und (c)")
      24. $Label1 = GUICtrlCreateLabel("Automatischer Programm Starter V1", 32, 56, 333, 28)
      25. GUICtrlSetFont(-1, 18, 400, 0, "Pricedown")
      26. $Label2 = GUICtrlCreateLabel("Startet mehrere Programme auf einmal.", 16, 112, 191, 18)
      27. GUICtrlSetFont(-1, 8, 400, 0, "Arial")
      28. $Label3 = GUICtrlCreateLabel("Kreuze das Programm an welches du starten möchtest und klicke Start.", 16, 144, 349, 18)
      29. GUICtrlSetFont(-1, 8, 400, 0, "Arial")
      30. $Label4 = GUICtrlCreateLabel("(c) by Jonas Baumann", 288, 240, 113, 18)
      31. GUICtrlSetFont(-1, 8, 400, 0, "Arial")
      32. GUICtrlCreateTabItem("")
      33. GUISetState(@SW_SHOW)
      34. #EndRegion ### END Koda GUI section ###
      35. While 1
      36. $nMsg = GUIGetMsg()
      37. Switch $nMsg
      38. Case $GUI_EVENT_CLOSE
      39. Exit
      40. EndSwitch
      41. WEnd
      Alles anzeigen


      Hoffe mir kann einer von euch helfen :D

      Mfg
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • Tekumi;44522 schrieb:

      $Checked = 7 ;Bin ich mir nicht sicher beim Wert.

      If $Checkbox1 = $Checked Then
      Run....
      ElseIf $Checkbox2 = $Checked Then
      Run...
      ...
      EndIf

      Müsste so hinhauen.

      Bei einer Checkbox können mehrere Elemente ausgewählt werden, weswegen ich hier nicht mit ElseIf arbeiten würde... :Psmiley:
    • Es geht nicht darum, was besser aussieht, sondern was funktioniert. Als Beispiel:

      [ ] Checkbox 1
      [X] Checkbox 2
      [X] Checkbox 3
      [ ] Checkbox 4

      Der Code, der deinem ersten Vorschlag entspricht hierzu:
      If $Checkbox1 = $Checked Then
      Run...
      ElseIf $Checkbox2 = $Checked Then
      Run...
      ElseIf $Checkbox3 = $Checked Then
      Run...
      ElseIf $Checkbox4 = $Checked Then
      Run...
      EndIf

      Übersetzt heißt das:
      Wenn $Checkbox1 gleich $Checked ist, dann...
      Wenn $Checkbox1 nicht gleich $Checked ist, aber $Checkbox2 gleich $Checked ist, dann...
      Wenn $Checkbox2 nicht gleich $Checked ist, aber $Checkbox3 gleich $Checked ist, dann...
      Wenn $Checkbox3 nicht gleich $Checked ist, aber $Checkbox4 gleich $Checked ist, dann...
      Ende.

      Sprich, im obigen Beispiel würde nur Checkbox2 gewertet werden, nicht aber Checkbox3, da dieses "If" ja nur geprüft wird, wenn $Checkbox1 nicht gleich $Checked ist und $Checkbox2 nicht gleich $Checked ist. (ElseIf = Wenn nicht, dann prüfe ...)

      Anders hingegen wenn man ohne ElseIf arbeitet, also für jede Checkbox ein neues If macht. Denn dann wird jede Bedingung geprüft und der entsprechende Code ausgeführt, auch wenn eine Bedingung davor bereits wahr war.
    • Also Tekumi, du bist Moderator und ich erwarte eigentlich von dir das du für Codes auch die bereit gestellte Code Box nutzt xO
      Das ist zu irritierend , die Code Box gibt es nicht umsonst >.>

      Ich würde in der While schleife das alles einfach direkt in die Switch abfrage einfügen oder

      Quellcode

      1. AutoItOnEvent()
      benutzen (ja AutoIt hat sowas =D )

      Eine ausführliche Erklärung steht im Helpfile, welches auch für Englisch Muffel auch in Deutsch erhältlich ist =)