GuiCtrlRead TAB Problem

  • Hallo,

    folgendes Problem:

    1. Meine Gui hat mehrere Tabs!
    2. Meine Gui hat ein Eingabefeld für die TAB Nr.

    Das Problem:

    Ich möchte in das Feld die TAB-Nr. eintragen,
    drücke ich RETURN dann soll der TAB aktiv werden.
    Die Nr wird immer eins weiter gezählt.
    Das klappt alles, nur der TAB wird nicht aktiv!

    Mein Script

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #Include <GuiTab.au3>

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

    HotKeySet("{Enter}", "_Seite")

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

    $Form1 = GUICreate("Form1", 625, 443, 192, 124)
    $hTab = GUICtrlCreateTab(32, 56, 537, 337) ; !!!
    $txtPage = GUICtrlCreateInput("0", 10, 5, 100, 20)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
    $TabSeite = GUICtrlCreateTabItem("Seite") ; !!!
    ;$Button1 = GUICtrlCreateButton("Zeigen", 440, 304, 75, 25, $WS_GROUP)
    ;$Button2 = GUICtrlCreateButton("ausblenden", 440, 336, 75, 25, $WS_GROUP)
    $Tab1 = GUICtrlCreateTabItem("1")
    $Tab2 = GUICtrlCreateTabItem("2")
    $Tab3 = GUICtrlCreateTabItem("3")
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)

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

    _GUICtrlTab_SetCurFocus($hTab, 0); TAB wird auf 0 gesetzt
    ;MsgBox(4160, "Information", "Aktueller Fokus: " & _GUICtrlTab_GetCurFocus($hTab))

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

    ControlFocus($Form1, "",$txtPage)
    GUICtrlSetData ($txtPage,"")

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

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

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

    EndSwitch
    WEnd

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

    Func _Seite()

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

    $GeheZu = guictrlread($txtPage)
    _GUICtrlTab_SetCurFocus($hTab, $GeheZu)
    $GeheZuweiter = $GeheZu +1
    GUICtrlSetData ($txtPage,$GeheZuweiter)
    ControlFocus($Form1, "",$txtPage)

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

    EndFunc

    [/autoit]

    Seltsam ist
    1. Ich kann das Feld lesen
    2. Ich kann den TAB Fokus so setzen: _GUICtrlTab_SetCurFocus($hTab, 2); das geht!
    und so geht's nicht:
    _GUICtrlTab_SetCurFocus($hTab, $GeheZu) ; das nicht! (Das guictrlread Feld)


    :(
    Grüße Ilse

    Einmal editiert, zuletzt von Ilse (13. März 2012 um 10:41)

  • Hallo Ilse,

    das Problem liegt daran das die Rückgabe von GUICtrlRead($txtPage) als String interpretiert wird (warum auch immer). Wenn du also Zeile 41 so abwandelst funktioniert es:

    [autoit]

    $GeheZu = int(GUICtrlRead($txtPage))

    [/autoit]

    mfg autoBert

  • Hallo,

    merci für die Hilfe!
    ABER:

    _GUICtrlTab_ActivateTab($hTab, $GeheZu)

    produziert einen Fehler!
    ERROR: _GUICtrlTab_ActivateTab(): undefined function.

    hab das ersetzt
    _GUICtrlTab_ActivateTab($hTab, $GeheZu) ; geht nicht!
    ;_GUICtrlTab_SetCurFocus($hTab, 2) ; geht


    ;) Grüße Ilse