Problem mit GUI

  • Joa also ich hab mit hilfe von dem Programm Koda ein GUI erstellt und mir dann den Code genieren lassen, nur das Problem was ich habe ist folgendes:

    Ich habe einen Button erstellt aber weiß nicht wie ich den Button "verlink" d.h. wie ich einstellen kann was passiert wenn der Button gedrückt wird.


    Bitte um Hilfe

    MfG Rakehunt

  • Hab ich schon probiert, bin anscheinend zu blöd :)

    kann mir nicht jemand ein simples Beispiel geben das ich mir dann kopieren und auf meine Buttons übertragen und bearbeiten kann?

    Wäre super nett :)


    MfG Rakehunt

  • Hi und Willkommen im Forum :)

    Hier mal ein ganz einfaches Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 633, 447, 193, 125)
    $Button1 = GUICtrlCreateButton("Test", 8, 8, 617, 433, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    MsgBox(0,"","TEEEEEEEEEEEEEEEEEEEESSSSSSSSSSSSSSSTTTTTTTTTTTTTTTT :D") ; mit Guigetmsg wird der Status der GUI abgefragt
    ; in der While Schleife passiert das immer wieder
    ; Mit dem Switch Case kann man gewisse Werte, Abfragen (ähnlich If then nur ienfacher bei vielen Abfragen)
    ; Ja, und ein Event das Auftreten kann wäre in dem Fall z.B. das die GUI geschlossen wird ($GUI_EVENT_CLOSE)
    ; oder eben $Button1 :)
    EndSwitch
    WEnd

    [/autoit]
  • Ja vielen Dank für die vielen schnellen und guten Antworten.

    2 Fragen habe ich da aber noch:

    Wie kann man das Programm "hinten" laufen lassen, d.h. das man nicht im Fenster sein muss wenn das Programm irgendwas rumclickt :)


    Und: Wie kann ich meinem Programm sagen das es sobald in einer Checkbox ein Haken ist, etwas machen soll.... (Bitte auch ein BeispielCode schreiben)


    MfG Rakehunt

    Einmal editiert, zuletzt von Rakehunt (23. Dezember 2008 um 21:41)

    • Offizieller Beitrag

    so hier mal ein Beispiel für Checkbox:

    [autoit]

    #include <GUIConstantsEx.au3>

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

    Opt('MustDeclareVars', 1)

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

    Example()

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

    Func Example()
    Local $radio1, $radio2, $msg
    GUICreate("My GUI radio") ; will create a dialog box that when displayed is centered

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

    $radio1 = GUICtrlCreateCheckbox("Check 1", 10, 10, 120, 20)
    $radio2 = GUICtrlCreateCheckbox("Check 2", 10, 40, 120, 20)

    GUISetState() ; will display an dialog box with 2 checkbox

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

    ; Run the GUI until the dialog is closed
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $radio1 And BitAND(GUICtrlRead($radio1), $GUI_CHECKED) = $GUI_CHECKED
    MsgBox(64, 'Info:', 'You clicked the Check 1 and it is Checked.')
    Case $msg = $radio2 And BitAND(GUICtrlRead($radio2), $GUI_CHECKED) = $GUI_CHECKED
    MsgBox(64, 'Info:', 'You clicked on Check 2 and it is Checked.')
    EndSelect
    WEnd
    EndFunc ;==>Example

    [/autoit]

    Wenn du eine Gui minimieren willst dan geht das mit GuiSetState(@SW_MAXIMIZE)

  • Das versteh ich nicht ganz... Also er sagt bei mir wäre eine Variable nicht deklariert... Meine Checkbox heißt beispielsweise ZERK. Kannste mir ein Besipiel schreiben wenn die Checkbox ZERK heißt?


    Mit minimieren mein ich nicht das GUI, sondern das Fenster in dem das Prog. arbeiten soll, beispielsweise in einem Spiel.


    MfG Rakehunt

    • Offizieller Beitrag

    In dem Script was ich gepostet habe kann kein Fehler kommen das die Var nicht decleriert ist . Den Variablenname der Checkbox von $radio1 und / oder $radio2 in $zerg umzuändern ist wohl nicht zu schwer.
    Edit: Wenn du das Spielefenster verstecken willst, wie soll dann das draufklicken klappen ? Ausserdem sind hier im Forum Bot´s verboten lese dir mal die Forenregeln durch .

  • Wenn du es damit nich schaffst kann ich dir auch nit helfen:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Form2", 413, 298, 303, 219)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 111, 156, 199, 28)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Checkbox1
    $Read = GUICtrlRead ($Checkbox1) ;liest den Status der CheckBox (1= makiert 4=nicht makiert)
    If $Read = "1" Then ;1 bedeutet das sie angeklickt ist
    MsgBox (0,"","Makiert")
    ElseIf $Read = "4" Then ;4 bedeutet das sie nicht angeklickt ist
    MsgBox (0,"","nicht Makiert")
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    mfg. Jam00

  • Wenn das Fenster mit Mausklicks arbeitet wird es nur im Aktiven fenster Passieren.
    Mit Controlclick kannst du Klicks im Hintergrund ausführen.

    Bsp.

    Willst du einen Menüpunkt oder einen Button in einem Prog ausführen und verwendest
    Mouseclick("left",0,500,2)
    Dann muss das Fenster aktiv sein in dem der Klick ausgeführt wird.
    Hat aber der Button einen Namen, kannst du ihn mit ControlClick("Unbenannt -","","MDIClient1") ansprechen.
    Findest in der Hilfe unter ControlClick
    ControlClick("title", "text", controlID [, button [, clicks [, x [, y ]]]] )

    Hoffe konnte bissel helfen ;)
    Bist der erste dann xD

    MfG

  • Joa das im Hintergrund ist erstmal nicht so wichtig, das mit der Checkbox hat auch geklappt. Dafür möchte ich mich erstmal bedanken :)

    Aber ich habe wieder eine Frage xD wie is das beim befehl send, wenn man eine Variable senden will

    Bsp.: send ("{$1}",0)

    Bei mir klappt das glaube ich nicht, da er die Variable in den "" nicht erkennt.