variable bug

  • ich bin zwar nicht der einzigste, der mit dem problem zu kämpfen hat, aber ich habe alles gemacht, was im forum so stand und trotzdem klappt es nicht!

    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIComboBox.au3>
    #include <EditConstants.au3>

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

    $Form1 = GUICreate("Hä?", 568, 501, 397, 362)
    $form1Button1 = GUICtrlCreateButton("Ich stimme zu", 360, 456, 97, 33, $WS_GROUP)
    $form1Button2 = GUICtrlCreateButton("Ich stimme nicht zu", 120, 456, 97, 33, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg

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

    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $form1Button2
    MsgBox(0, "Hinweiß", "Sie sollten zustimmen")
    Exit

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

    Case $form1Button1
    GUIDelete()

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

    $Form2 = GUICreate("Hä?", 563, 500, 249, 183)
    $form3button1 = GUICtrlCreateButton("Hier", 216, 160, 201, 41, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    Case $form3button1
    $Form1 = GUICreate("Hä?", 291, 156, 397, 362)
    GUISetState(@SW_SHOW)

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

    EndSwitch
    WEnd

    [/autoit]


    Ein paar includes könnte man weglassen, aber ich habs mal gelassen.

  • Dies ist die Fehlermeldung aus deinem Script:

    Zitat

    (41) : ==> Variable used without being declared.

    Der Fehler liegt also in einer Variable die nicht deklariert wurde, und in Zeile 41 ist.
    Wenn man sich das genau ansieht, merkt man, dass "$form3button1" noch nicht deklariert wurde.
    (Dies geschiet ja erst, wenn jemand auf Button 1 drückt)

    Um diesen Fehler zu vermeiden, gibt es 2 Möglichkeiten:
    1. Du erstellst die GUI mit dem Button sofort, lässt sie aber unsichtbar
    oder
    2. Du fragst vorher ab ob die Variable "isdeclared" ist.

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • ich habs mal probiert...

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIComboBox.au3>
    #include <EditConstants.au3>

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

    form3()

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

    $Form1 = GUICreate("Hä?", 568, 501, 397, 362)
    $form1Button1 = GUICtrlCreateButton("Ich stimme zu", 360, 456, 97, 33, $WS_GROUP)
    $form1Button2 = GUICtrlCreateButton("Ich stimme nicht zu", 120, 456, 97, 33, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg

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

    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $form1Button2
    MsgBox(0, "Hinweiß", "Sie sollten zustimmen")
    Exit

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

    Case $form1Button1
    GUIDelete()
    GUISetState(@SW_SHOW, $Form2)

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

    Case $form3button1

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

    $Form3 = GUICreate("Hä?", 291, 156, 397, 362)
    GUISetState(@SW_HIDE)

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

    Func form3()
    $Form2 = GUICreate("Hä?", 563, 500, 249, 183)
    $form3button1 = GUICtrlCreateButton("Hier", 216, 160, 201, 41, $WS_GROUP)
    GUISetState(@SW_HIDE)
    EndFunc

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

    EndSwitch
    WEnd

    [/autoit]


    ohne erfolg

  • [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIComboBox.au3>
    #include <EditConstants.au3>

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

    ;Main GUI
    $Main = GUICreate("Hä?", 568, 501, 397, 362)
    $form1Button1 = GUICtrlCreateButton("Ich stimme zu", 360, 456, 97, 33, $WS_GROUP)
    $form1Button2 = GUICtrlCreateButton("Ich stimme nicht zu", 120, 456, 97, 33, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    ;Child GUI
    $Child = GUICreate("Hä?", 563, 500, 249, 183)
    $form3button1 = GUICtrlCreateButton("Hier", 216, 160, 201, 41, $WS_GROUP)
    GUISetState (@SW_HIDE)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg

    Case $GUI_EVENT_CLOSE
    Exit
    Case $form1Button2
    MsgBox(0, "Hinweiß", "Sie sollten zustimmen")
    Exit
    Case $form1button1
    ;~ GUISetState (@SW_HIDE, $Main) ;Ist optional.. kannst du auch weglassen ;)
    GUISetState(@SW_SHOW, $Child)
    Case $form3button1
    MsgBox (0, "Hä?", "Hier kann dann die nächse Aktion im Skript hin!!")
    EndSwitch
    WEnd

    [/autoit]

    Bitte schön.
    Hoffe es ist so, wie du wolltest ^^