Brauche Hilfe bei GUICtrlRead

  • Hey Leute...
    Ich habe ein Problem mit einer Funktion...
    Bei der rot markierten Zeile tritt ein Syntax error auf...

    Also ich will bewirken, dass diese Funktion prüft ob "test" in Input1 steht und wenn das der Fall ist soll die Form test angezeigt werden...

    Ich hoffe, dass das jemand versteht... ;)

    Hier der Code:

    [autoit]

    Func input()
    $input1 = GUICtrlRead($Input1)
    If $input1 = test Then
    $test.GUISetState(@SW_SHOW)
    Else
    MsgBox(0, "Fehler", "Es ist ein Fehler aufgetreten.")
    EndIf
    EndFunc

    [/autoit]

    2 Mal editiert, zuletzt von drifter213 (18. Juli 2012 um 10:38)

  • du musst test schon in Anführungszeichen setzen. ^^

    Und das $test. kannste auch weglassen.

    Wie kommst du auf sowas?

    Bei den Input, darfst du es nicht wieder zurück in die selbe Variable schreiben.

  • So macht das ganze mehr Sinn:

    [autoit]

    Func input()
    Local $InputRead = GUICtrlRead($Input1)

    If $InputRead = "test" Then
    GUISetState()
    Else
    MsgBox(0, "Fehler", "Es ist ein Fehler aufgetreten.")
    EndIf
    EndFunc

    [/autoit]


    Oder halt ohne $InputRead.

  • Aber dann wird ja die Form Test nicht sichtbar, weil ja

    [autoit]

    $test.GUISetState(@SW_SHOW)

    [/autoit]

    nicht steht

  • Schau dir mal den Standardwert von GUISetState an. Außerdem ist dieses $test. sowieso falsch.

  • Habe ich auch gerade bemerkt... aber bei dem hier kommt auch ein error:

    [autoit]

    GUISetState(@SW_SHOW, $test)

    [/autoit]

    Errorlog:
    ==> Variable used without being declared.:
    GUISetState(@SW_SHOW, $test)
    GUISetState(@SW_SHOW, ^ ERROR

    Aber vorher steht doch:

    [autoit]


    $test = GUICreate("test", 401, 190, 192, 124)
    GUISetState(@SW_HIDE)

    [/autoit]

    3 Mal editiert, zuletzt von drifter213 (18. Juli 2012 um 09:40)

  • Das ganze Script:

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=suchfenster
    $hauptfenster = GUICreate("irgendeintest", 308, 100, 392, 200)
    $Input1 = GUICtrlCreateInput("Input1", 24, 40, 121, 21)
    $Label1 = GUICtrlCreateLabel("Bitte test eingeben", 72, 8, 159, 17)
    $Button1 = GUICtrlCreateButton("suchen", 176, 40, 75, 25)
    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
    input()
    EndSwitch

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

    WEnd

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

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $test = GUICreate("test", 401, 190, 192, 124)
    $Label1 = GUICtrlCreateLabel("test", 16, 16, 53, 17)
    GUISetState(@SW_HIDE)
    #EndRegion ### END Koda GUI section ###

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

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

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

    Func input()
    Local $InputRead = GUICtrlRead($Input1)

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

    If $InputRead = "test" Then
    GUISetState(@SW_SHOW, $test)
    Else
    MsgBox(0, "Fehler", "Es ist ein Fehler aufgetreten.")
    EndIf
    EndFunc

    [/autoit]

    2 Mal editiert, zuletzt von drifter213 (18. Juli 2012 um 10:12)

  • Bin anscheinen mit dem kopieren dureinandergekommen, ich habe natürlich ein Fenster namens $test...
    Hab auch grad was für nen Freund gemacht und so... ist ja egal^^

    Auf jedenfall habe ich ein Fester, welches $test heißt ;)

  • So?

    Spoiler anzeigen
    [autoit]

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

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

    Global $aMsg

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

    Global $hGuiMain = GUICreate("irgendeintest", 300, 100)
    Global $cInput = GUICtrlCreateInput("Input1", 20, 40, 120, 20)
    GUICtrlCreateLabel("Bitte test eingeben", 70, 10, 160, 17)
    Global $cSearch = GUICtrlCreateButton("Suchen", 160, 37, 80, 25)

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

    Global $hGuiTest = GUICreate("test", 400, 200)
    GUICtrlCreateLabel("test", 20, 20, 50, 17)

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

    GUISetState(@SW_SHOW, $hGuiMain)

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

    While 1
    $aMsg = GUIGetMsg(1)
    Switch $aMsg[1]
    Case $hGuiMain
    Switch $aMsg[0]
    Case $GUI_EVENT_CLOSE
    Exit
    case $cSearch
    _Search()
    EndSwitch
    Case $hGuiTest
    Switch $aMsg[0]
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE, $hGuiTest)
    EndSwitch
    EndSwitch
    WEnd

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

    Func _Search()
    If GUICtrlRead($cInput) = "test" Then
    GUISetState(@SW_SHOW, $hGuiTest)
    Else
    MsgBox(16, "Fehler", "Es ist ein Fehler aufgetreten.")
    EndIf
    EndFunc

    [/autoit]
  • hier im OnEventMode! 8)

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    Opt("GUIOnEventMode", 1)

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

    #region ### START Koda GUI section ###
    $GUIhaupt = GUICreate("irgendeintest", 308, 100, 392, 200)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_SpecialEvents")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "_SpecialEvents")
    GUISetOnEvent($GUI_EVENT_RESTORE, "_SpecialEvents")

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

    $Input = GUICtrlCreateInput("Input1", 24, 40, 121, 21)
    GUICtrlCreateLabel("Bitte test eingeben", 72, 8, 159, 17)
    $Button = GUICtrlCreateButton("suchen", 176, 40, 75, 25)
    GUICtrlSetOnEvent(-1, "_SpecialEvents")
    GUISetState(@SW_SHOW, $GUIhaupt)
    #endregion ### END Koda GUI section ###

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

    #region ### START Koda GUI section ###
    $GUItest = GUICreate("test", 401, 190, 192, 124)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_close")
    GUICtrlCreateLabel("test", 16, 16, 53, 17)
    #endregion ### END Koda GUI section ###

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

    While Sleep(1000)
    WEnd

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

    Func _SpecialEvents()
    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    MsgBox(0, "Schliessen gedrückt", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
    Exit
    Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
    MsgBox(0, "Fenster minimiert", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
    Case @GUI_CtrlId = $GUI_EVENT_RESTORE
    MsgBox(0, "Fenster wiederhergestellt", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
    Case @GUI_CtrlId = $Button
    _input()
    EndSelect
    EndFunc ;==>_SpecialEvents

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

    Func _input()
    If (GUICtrlRead($Input) = "test") Then
    GUISetState(@SW_SHOW, $GUItest)
    Else
    MsgBox(0, "Error", StringFormat('Es ist ein Fehler aufgetreten.'))
    EndIf
    EndFunc ;==>_input

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

    Func _close()
    GUISetState(@SW_HIDE, $GUItest)
    EndFunc ;==>_close
    ;Ende

    [/autoit]
  • So ist es falsch:

    Spoiler anzeigen
    [autoit]

    Func _SpecialEvents()
    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    MsgBox(0, "Schliessen gedrückt", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
    Exit
    Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
    MsgBox(0, "Fenster minimiert", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
    Case @GUI_CtrlId = $GUI_EVENT_RESTORE
    MsgBox(0, "Fenster wiederhergestellt", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
    Case $Button
    _input()
    EndSelect
    EndFunc ;==>_SpecialEvents

    [/autoit]

    Entweder so:

    Spoiler anzeigen
    [autoit]

    Func _SpecialEvents()
    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    MsgBox(0, "Schliessen gedrückt", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
    Exit
    Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
    MsgBox(0, "Fenster minimiert", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
    Case @GUI_CtrlId = $GUI_EVENT_RESTORE
    MsgBox(0, "Fenster wiederhergestellt", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
    Case @GUI_CtrlId = $Button
    _input()
    EndSelect
    EndFunc ;==>_SpecialEvents

    [/autoit]


    Oder so:

    Spoiler anzeigen
    [autoit]

    Func _SpecialEvents()
    Switch @GUI_CtrlId
    Case $GUI_EVENT_CLOSE
    MsgBox(0, "Schliessen gedrückt", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
    Exit
    Case $GUI_EVENT_MINIMIZE
    MsgBox(0, "Fenster minimiert", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
    Case $GUI_EVENT_RESTORE
    MsgBox(0, "Fenster wiederhergestellt", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
    Case $Button
    _input()
    EndSwitch
    EndFunc ;==>_SpecialEvents

    [/autoit]


    Wobei das letzte eher Sinn macht.