GUICtrlRead will nicht mehr gehen

  • Irgendwie funktioniert GUICtrlRead nicht mehr :cursing: @error wird immer = 0 gesetzt und ich hab keine Ahnung wieso. Hier ist mein Script:

    [autoit]

    #include
    $haupt = GUICreate("Titel", @desktopwidth/2, @desktopheight/2)
    GUISetState(@sw_show)
    $Input = GUICtrlCreateInput("Hier den zu analysierenden Text eingeben", 0,0,@desktopwidth/2-50, @desktopheight/2)
    $menu = GUICtrlCreateMenu("Analysieren")
    $menu2 = GUICtrlCreateMenuItem("los", $menu)
    $but = GUICtrlCreateButton("OK", @desktopwidth/2-20, -1)
    Func Analysieren()
    $Text = GUICtrlRead($Input)
    If @error = 0 Then
    MsgBox(0, "error", $input)
    EndIf
    $Buchstabe = StringSplit($Text, "")
    For $i = 1 To $i = 0
    MsgBox(0, $i, $Buchstabe[$i])
    Next
    EndFunc

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

    While 1
    $Gui = GUIGetMsg()
    Switch $gui
    Case $GUI_EVENT_CLOSE
    Exit
    Case $menu2
    Analysieren()
    Case $but
    analysieren()
    EndSwitch
    WEnd

    [/autoit]


    Aquaplant
    //EDIT: Es funktioniert jetzt. Irgendwie wird immer 0 ausgegeben obwohl es geklappt hat ?( Script sieht jetzt so aus:

    [autoit]

    #include
    $haupt = GUICreate("Titel", @desktopwidth/2, @desktopheight/2)
    GUISetState(@sw_show)
    $eingabe = GUICtrlCreateInput("Hier den zu analysierenden Text eingeben", 0,0,@desktopwidth/2-50, @desktopheight/2)
    $menu = GUICtrlCreateMenu("Analysieren")
    $menu2 = GUICtrlCreateMenuItem("los", $menu)
    $but = GUICtrlCreateButton("OK", @desktopwidth/2-20, -1)
    Func Analysieren()
    $Text = GUICtrlRead($eingabe)
    MsgBox(0, "", $text)
    ;~ If @error = 0 Then
    ;~ MsgBox(0, "error", $eingabe)
    ;~ EndIf
    $Buchstabe = StringSplit($Text, "")
    MsgBox(0, "", $Buchstabe[0])
    For $i = 1 To $Buchstabe[0]
    MsgBox(0, $i, $Buchstabe[$i])
    Next
    EndFunc

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

    While 1
    $Gui = GUIGetMsg()
    Switch $gui
    Case $GUI_EVENT_CLOSE
    Exit
    Case $menu2
    Analysieren()
    Case $but
    analysieren()
    EndSwitch
    WEnd

    [/autoit]

    2 Mal editiert, zuletzt von Aquaplant (19. November 2009 um 14:12)

  • Nirgendwo steht, daß @error gesetzt wird bei GuiCtrlRead() !
    Lt. Hilfe wird bei Fehler ein 0 zurückgegeben, also ist SeuBo´s erstes Beispiel FALSCH (da @error nicht definiert! ) , das zweite Beispiel aber genau richtig!

  • Das ist die Return Value, die hat nichts mit @error zu tun.

    So siehts zb bei StringInStr aus:

    Zitat

    Return Value
    Success: Returns the position of the substring.
    Failure: Returns 0 if substring not found.
    @Error 0 - Normal operation
    1 - Invalid "start" or "occurance" parameter given.

    Eine funktion kann zb bei einem Fehlschlag 0 zurückgeben, und über @error näher bestimmen, um welchem fehler es sich handelt.

    [autoit]


    Func _Function()
    ;Return: 0 = Fehler! / 1 = Kein Fehler
    ;@Error = 0 (Kein Fehler). @Error = 1 (Kein Admin). @Error = 2 (Username nicht "Admin")
    If @UserName = "Admin" Then
    If IsAdmin() Then
    SetError(0) ; Kein Fehler!
    Return 1 ; Kein Fehler
    Else
    SetError(1);Kein Admin
    Return 0 ; Gebe 0 zurück (Fehler)
    EndIf
    Else
    SetError(2); Username ist nicht Admin
    Return 0 ; Gebe 0 zurück (Fehler)
    EndIf
    EndFunc

    [/autoit]
  • Success:Returns depending the control (see below).Failure:Returns 0.

    wieso lernen? LESEN hilft^^
    In deinem Zitat ist nirgendwo von @error die Rede...