Problem mit meiner ersten GUI

  • Hallo alle zusammen,
    ich habe gerade versucht meine erste GUI zu schreiben aber immer wenn ich auf 'Run' klicke wird nichts angezeigt. Nur das kleine AutoIt-Symbol unten rechts in der Leiste. ?( ?( ?(
    Wäre euch sehr verbunden, wenn ich Hilfe bekommen könnnte.

    Hier mein Skript:

    [autoit]

    #include <GUIConstantsEx.au3>

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

    GUICreate("Fragen über Fragen", 300, 100)
    GUICtrlCreateLabel("Wie viel ist 1+1?", 10, 20, 510, 210)
    $Button1 = GUICtrlCreateButton("1", 30, 50, 50, 25)
    $Button2 = GUICtrlCreateButton("2", 100, 50, 50, 25)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button1
    MsgBox(48, "ERROR", "Das war leider die falsche Antwort. Ihr System wird nun herunter gefahren.")
    Sleep(1000)
    Exit
    ExitLoop
    Case $msg = $Button2
    MsgBox(64, "Richtig", "Gut, du hast also doch in Mathe aufgepasst")
    ExitLoop

    EndSelect

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

    WEnd

    [/autoit]


    MfG. Hunter77

  • hi...

    also bei mir wird er schon angezeigt... aber...
    die größe deines Labels hat die Buttons überdekt ^^

    so ist besser.....

    [autoit]

    #include <GUIConstantsEx.au3>

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

    GUICreate("Fragen über Fragen", 300, 100)
    GUICtrlCreateLabel("Wie viel ist 1+1?", 10, 20, 100, 20) ; Größe verändert
    $Button1 = GUICtrlCreateButton("1", 30, 50, 50, 25)
    $Button2 = GUICtrlCreateButton("2", 100, 50, 50, 25)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button1
    MsgBox(48, "ERROR", "Das war leider die falsche Antwort. Ihr System wird nun herunter gefahren.")
    Sleep(1000)
    Exit
    ExitLoop
    Case $msg = $Button2
    MsgBox(64, "Richtig", "Gut, du hast also doch in Mathe aufgepasst")
    ExitLoop

    EndSelect
    WEnd

    [/autoit]

    achja ich würde die eingabe in ein inputfield machen....

    MFG chris :D

  • Hi,
    jetzt habe ich weitergeschrieben und wollte eine zweite GUI hinten dranhängen. Dies wird leider nicht angezeigt. Aber wieso ? ?(
    Hoffe ich kriege hier noch mal so gute Hilfe wie vorhin ;)

    Hier dann noch mal mein Skript:

    [autoit]

    #include <GUIConstantsEx.au3>

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

    GUICreate("Fragen über Fragen", 300, 100)
    GUICtrlCreateLabel("Wie viel ist 1+1?", 10, 20, 100, 20)
    $Button1 = GUICtrlCreateButton("1", 30, 50, 50, 25)
    $Button2 = GUICtrlCreateButton("2", 100, 50, 50, 25)
    $Button3 = GUICtrlCreateButton("3", 170, 50, 50, 25)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button1
    MsgBox(48, "ERROR", "Das war leider die falsche Antwort. Ihr System wird nun herunter gefahren.")
    Sleep(1000)
    Shutdown(1)
    ExitLoop
    Case $msg = $Button2
    MsgBox(64, "Richtig", "Gut, du hast also doch in Mathe aufgepasst")
    ExitLoop
    Case $msg = $Button3
    MsgBox(48, "ERROR", "Das war leider die falsche Antwort. Ihr System wird nun herunter gefahren.")
    Sleep(1000)
    Shutdown(1)
    ExitLoop
    EndSelect
    WEnd

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

    ;ab hier wird nichts mehr angezeigt

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

    GUICreate("Fragen über Fragen", 300, 100)
    GUICtrlCreateLabel("Welches Wesen läuft am Morgen mit vier, am Mittag mit 2 und am Abend mit drei Beinen?", 10, 20, 100, 20)
    $Button4 = GUICtrlCreateButton("Hund", 30, 50, 50, 25)
    $Button5 = GUICtrlCreateButton("Vogel", 100, 50, 50, 25)
    $Button6 = GUICtrlCreateButton("Mensch", 170, 50, 50, 25)

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

    GUISetState(@SW_SHOW)

    [/autoit]


    MfG. Hunter77

  • habs mal bissen angeschaut und erkannt.... die 2 GUI wird angezeigt... nur so schnell das du es nciht siehst da danach keine schleife kommt :)

    hier mal das funktionierende ... nur die größe des GUIs musst du anpassen da es ein bisschen zu voll ist :)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    GUICreate("Fragen über Fragen", 300, 100)
    GUICtrlCreateLabel("Wie viel ist 1+1?", 10, 20, 100, 20)
    $Button1 = GUICtrlCreateButton("1", 30, 50, 50, 25)
    $Button2 = GUICtrlCreateButton("2", 100, 50, 50, 25)
    $Button3 = GUICtrlCreateButton("3", 170, 50, 50, 25)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button1
    MsgBox(48, "ERROR", "Das war leider die falsche Antwort. Ihr System wird nun herunter gefahren.")
    Sleep(1000)
    Shutdown(1)
    ExitLoop
    Case $msg = $Button2
    MsgBox(64, "Richtig", "Gut, du hast also doch in Mathe aufgepasst")
    _frage2 ()
    ExitLoop
    Case $msg = $Button3
    MsgBox(48, "ERROR", "Das war leider die falsche Antwort. Ihr System wird nun herunter gefahren.")
    Sleep(1000)
    Shutdown(1)
    ExitLoop
    EndSelect
    WEnd

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

    ;ab hier wird nichts mehr angezeigt
    Func _frage2 ()
    GUICreate("Fragen über Fragen2", 300, 100)
    GUICtrlCreateLabel("Welches Wesen läuft am Morgen mit vier, am Mittag mit 2 und am Abend mit drei Beinen?", 10, 20, 100, 20)
    $Button4 = GUICtrlCreateButton("Hund", 30, 50, 50, 25)
    $Button5 = GUICtrlCreateButton("Vogel", 100, 50, 50, 25)
    $Button6 = GUICtrlCreateButton("Mensch", 170, 50, 50, 25)

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

    GUISetState(@SW_SHOW)

    While 1
    sleep (10)
    WEnd
    EndFunc

    [/autoit]

    MFG: Blacky911

    Kleiner AutoIt Lehrling :)

  • Also ich würde das eher so lösen:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    ; Hier ist die GUI-1
    $1_GUI = GUICreate("GUI 1", 116, 119, 193, 125)
    $Label1 = GUICtrlCreateLabel("GUI 1", 8, 16, 85, 41)
    GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
    $Button_1 = GUICtrlCreateButton("GUI 2 öffnen", 8, 64, 89, 33, 0)
    GUISetState(@SW_SHOW)

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

    ; Hier ist die GUI-2
    $2_GUI = GUICreate("GUI 2", 116, 119, 193, 125)
    $Label1 = GUICtrlCreateLabel("GUI 2", 8, 16, 85, 41)
    GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
    $Button_2 = GUICtrlCreateButton("GUI 1 öffnen", 8, 64, 89, 33, 0)

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

    ; hier werden die GUI's ein- und ausgeblendet und das über die jeweiligen Buttons in der zuständigen GUI
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button_1
    GUISetState(@SW_HIDE, $1_GUI)
    GUISetState(@SW_SHOW, $2_GUI)
    Case $Button_2
    GUISetState(@SW_HIDE, $2_GUI)
    GUISetState(@SW_SHOW, $1_GUI)
    EndSwitch
    WEnd

    [/autoit]

    Vorteile:
    - GUI's sind übersichtlich am Anfang
    - alles in einer Schleife mit den Abfragen
    - Als Anfänger braucht er so noch nicht mit Funktionen arbeiten

    Wichtig ist das Du dir die Hilfe nimmst und alles dort nochmals versuchst zu verstehen. Die Hilfe findest Du als Download links unter: AutoIt-Hilfe (auch online)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Hallo Hunter77,

    bevor du jetzt noch weitere Gui's hintereinanderhängst (geht natürlich wenn nach jeder ein Msg-Loop hängt) lies lieber in der Hilfe die Stichpunkte GUICtrlCreateGroup, GUICtrlCreateRadio, GuiCtrlSetData, FileRead und Filewrite. Danach lass dir ein Schema einfallen, wie du alles in einer Gui lösen kannst. Oder versuche zuerst alle Gui-Controls kennenzulernen und entscheide danach welche du für deinen Zweck brauchbar sind.

    PS.: was studierst du?

    mfg (Auto)Bert

  • Hallo noch mal,
    erst mal: Vielen Dank an alle für gute die Hilfe jetzt klappt es endlich!
    zweitens: ich studiere im Moment noch nicht, denn ich bin noch Schüler. Sagen wir mal ich studiere AutoIt ^^

    Also ich habe versucht meinen Skript noch weiter zu schreiben, aber das letzte 'While' wird einfach nicht mehr ausgeführt. ?(
    Keine Ahnung wieso, ich habe auch 'Sleep' und 'GUISetState(@SW_SHOW)' eingebaut aber es klappt trotzdem nicht.
    Hoffentlich könnt ihr mir wieder helfen, denn ich hab absolut keine Ahnung woran das liegen könnte.

    Hier noch mal mein Skript:

    Spoiler anzeigen
    [autoit]

    #cs--------------------------------------------------------------------

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

    Produced by
    Hunter GmbH

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

    #ce--------------------------------------------------------------------

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

    #include <GUIConstantsEx.au3>

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

    GUICreate("Fragen über Fragen", 300, 100)
    GUICtrlCreateLabel("Wie viel ist 1+1?", 10, 20, 100, 20)
    $Button1 = GUICtrlCreateButton("1", 30, 50, 50, 25)
    $Button2 = GUICtrlCreateButton("2", 100, 50, 50, 25)
    $Button3 = GUICtrlCreateButton("3", 170, 50, 50, 25)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button1
    MsgBox(48, "ERROR", "Das war leider die falsche Antwort. Ihr System wird nun herunter gefahren.")
    Sleep(1000)
    Shutdown(1)
    ExitLoop
    Case $msg = $Button2
    MsgBox(64, "Richtig", "Gut, du hast also doch in Mathe aufgepasst")
    ExitLoop
    Case $msg = $Button3
    MsgBox(48, "ERROR", "Das war leider die falsche Antwort. Ihr System wird nun herunter gefahren.")
    Sleep(1000)
    Shutdown(1)
    ExitLoop
    EndSelect
    WEnd

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

    GUICreate("Fragen über Fragen", 300, 100)
    GUICtrlCreateLabel("Welches Wesen läuft am Morgen mit vier,", 10, 20)
    GUICtrlCreateLabel("am Mittag mit zwei und am Abend mit drei Beinen?", 10, 35)
    $Button4 = GUICtrlCreateButton("Hund", 30, 70, 50, 25)
    $Button5 = GUICtrlCreateButton("Vogel", 100, 70, 50, 25)
    $Button6 = GUICtrlCreateButton("Mensch", 170, 70, 50, 25)

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

    GUISetState(@SW_SHOW)

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

    While 2
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button4
    MsgBox(48, "ERROR", "Das war leider die falsche Antwort. Ihr System wird nun herunter gefahren.")
    Sleep(1000)
    Shutdown(1)
    ExitLoop
    Case $msg = $Button5
    MsgBox(48, "ERROR", "Das war leider die falsche Antwort. Ihr System wird nun herunter gefahren.")
    Sleep(1000)
    Shutdown(1)
    ExitLoop
    Case $msg = $Button6
    MsgBox(64, "Richtig", "Schön, Logik hast du also auch.")
    ExitLoop
    EndSelect
    WEnd

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

    GUICreate("Fragen über Fragen", 300, 100)
    GUICtrlCreateLabel("Mal bin ich groß, mal bin klein.", 10, 20)
    GUICtrlCreateLabel("Ich leuchte hell, und der Wind ist mein Feind", 10, 35)
    $Button7 = GUICtrlCreateButton("Kerze", 20, 70, 80, 25)
    $Button8 = GUICtrlCreateButton("Leuchtturm", 100, 70, 80, 25)
    $Button9 = GUICtrlCreateButton("Taschenlampe", 180, 70, 80, 25)

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

    GUISetState(@SW_SHOW)

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

    ;Das folgende While wird nicht mehr ausgeführt:

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

    While 3
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button7
    MsgBox(64, "Richtig", "Juhu! Noch mehr Logik!")
    ExitLoop
    Case $msg = $Button8
    MsgBox(48, "ERROR", "Das war leider die falsche Antwort. Ihr System wird nun herunter gefahren.")
    Sleep(1000)
    Shutdown(1)
    ExitLoop
    Case $msg = $Button9
    MsgBox(48, "ERROR", "Das war leider die falsche Antwort. Ihr System wird nun herunter gefahren.")
    Sleep(1000)
    Shutdown(1)
    ExitLoop
    EndSelect
    WEnd

    [/autoit]

    MfG. Hunter77

  • also es wird soweiso nur die erste while ausgeführt weil while
    einfach den einen vorgang immer wieder wiederholt es gibt also kein ende versuchs noch mal mit func`s

    nein ... wenn er nen exitloop einbaucht kommen auch die anderen dran....

    @Hunter77

    So sollte es jetzt klappen du hattest $msg = GUIGetMsg() im dritten while vergessen...
    aber wenn du wirklich mehr fragen machen willst solltest du vieleicht wirklich ne art Function dafür bauen.... sodass der gleiche gui immer mit neuen Informationen gefüllt wird....

    Spoiler anzeigen
    [autoit]


    ; Produced by
    ; Hunter GmbH

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

    #include <GUIConstantsEx.au3>

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

    GUICreate("Fragen über Fragen", 300, 100)
    GUICtrlCreateLabel("Wie viel ist 1+1?", 10, 20, 100, 20)
    $Button1 = GUICtrlCreateButton("1", 30, 50, 50, 25)
    $Button2 = GUICtrlCreateButton("2", 100, 50, 50, 25)
    $Button3 = GUICtrlCreateButton("3", 170, 50, 50, 25)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button1
    MsgBox(48, "ERROR", "Das war leider die falsche Antwort. Ihr System wird nun herunter gefahren.")
    Sleep(1000)
    ExitLoop
    Case $msg = $Button2
    MsgBox(64, "Richtig", "Gut, du hast also doch in Mathe aufgepasst")
    ExitLoop
    Case $msg = $Button3
    MsgBox(48, "ERROR", "Das war leider die falsche Antwort. Ihr System wird nun herunter gefahren.")
    Sleep(1000)
    ExitLoop
    EndSelect
    WEnd

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

    GUICreate("Fragen über Fragen", 300, 100)
    GUICtrlCreateLabel("Welches Wesen läuft am Morgen mit vier,", 10, 20)
    GUICtrlCreateLabel("am Mittag mit zwei und am Abend mit drei Beinen?", 10, 35)
    $Button4 = GUICtrlCreateButton("Hund", 30, 70, 50, 25)
    $Button5 = GUICtrlCreateButton("Vogel", 100, 70, 50, 25)
    $Button6 = GUICtrlCreateButton("Mensch", 170, 70, 50, 25)

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

    GUISetState(@SW_SHOW)

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

    While 2
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button4
    MsgBox(48, "ERROR", "Das war leider die falsche Antwort. Ihr System wird nun herunter gefahren.")
    Sleep(1000)
    ExitLoop
    Case $msg = $Button5
    MsgBox(48, "ERROR", "Das war leider die falsche Antwort. Ihr System wird nun herunter gefahren.")
    Sleep(1000)
    ExitLoop
    Case $msg = $Button6
    MsgBox(64, "Richtig", "Schön, Logik hast du also auch.")
    ExitLoop
    EndSelect
    WEnd

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

    GUICreate("Fragen über Fragen", 300, 100)
    GUICtrlCreateLabel("Mal bin ich groß, mal bin klein.", 10, 20)
    GUICtrlCreateLabel("Ich leuchte hell, und der Wind ist mein Feind", 10, 35)
    $Button7 = GUICtrlCreateButton("Kerze", 20, 70, 80, 25)
    $Button8 = GUICtrlCreateButton("Leuchtturm", 100, 70, 80, 25)
    $Button9 = GUICtrlCreateButton("Taschenlampe", 180, 70, 80, 25)

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

    GUISetState(@SW_SHOW)

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

    ;Das folgende While wird nicht mehr ausgeführt:

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

    While 3
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button7
    MsgBox(64, "Richtig", "Juhu! Noch mehr Logik!")
    ExitLoop
    Case $msg = $Button8
    MsgBox(48, "ERROR", "Das war leider die falsche Antwort. Ihr System wird nun herunter gefahren.")
    Sleep(1000)
    ExitLoop
    Case $msg = $Button9
    MsgBox(48, "ERROR", "Das war leider die falsche Antwort. Ihr System wird nun herunter gefahren.")
    Sleep(1000)
    ExitLoop
    EndSelect
    WEnd

    [/autoit]

    PS: Bitte lass den Blödsinn mit sys shutdown wenn du es hier postest...

    MFG chris :D

  • Hier mal ne kleine Darstellung wie man ne eigene Func bastelt...

    [autoit]

    MsgBox ( 0,"","Vor der Funktion" )
    $return_wert = _MeineFunktion('Hallo', 5 ) ; Du kannst hier so viele Sachen mit übergeben wie du willst... auch arrays und 2d arrays
    MsgBox ( 0,"","Nach der Funktion und der zurückgegebene Wert ist: "&$return_wert )

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

    Func _MeineFunktion ( $bez , $wert )
    MsgBox ( 0,$bez,'Übergebener Wert ist: '&$wert )
    Return 15
    EndFunc

    [/autoit]

    MFG chris :D

  • Hallo Hunter77,

    du kannt jetzt solange Guis hintereinander reihen wie du möchtest oder bis deinem PC die Resourcen augehen (letztere kannst du verhindern, in dem du die Gui wieder löchst Stichwort GuiDelete) oder du fängst mal an die anderen Steuerelemente und AutoIt besser kennen zu lernen => Hilfe und Tutorial lesen, dann kannst du z.B. ein Quizpiel programmieren oder Vokabeltrainer, bei denen die Fragen autauschbar sind,

    mfg (Auto)Bert

    ps.: bei meinem 1.Beitrag stand aber noch Student bei dir als Berufbezeichnung

  • Vielen Dank noch mal an alle die mir geholfen haben.
    Hat mir wirklich sehr geholfen. Nochmals Danke!
    Jetzt krieg ichs aber glaub ich hin :)

    MfG. Hunter77

  • Bitte nehm mal aus dem Script den "Shutdown(1)" raus. Immer wieder fährt der PC runter, weil ich nicht drann denke. LOL :evil:

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr