Funktion aufrufen wenn Tab Item angeklick wurde

  • Hallo zusammen

    kann mir bitte jemand Unterstüzung geben. Ich suche nach der Funktion die aufgerufen werden kann wenn ich ein TAB Item anklicke.

    Ich möchte die Prüfung in der While Wend Schleife integrieren, da ich alle anderen Buttons auch darin abfrage.

    Mit dem Befehl Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus habe ich es bereits versucht und dies funktioniert auch.

    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 615, 440, 192, 124)
    $Button1 = GUICtrlCreateButton("Exit", 496, 384, 81, 33)
    $Tab_1 = GUICtrlCreateTab(20,20,450,300)
    $Tab_Item_1 = GUICtrlCreateTabItem("TAB 1")
    $Tab_Item_2 = GUICtrlCreateTabItem("TAB 2")
    $Tab_Item_3 = GUICtrlCreateTabItem("TAB 3")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Button1
    Exit
    Case $GUI_EVENT_CLOSE
    Exit
    ;Example
    ; Wenn man Register Tab 2 anklickt soll ein Funktion aufgerufen werden
    ; Command der prüft ob Tab 2 angeklickt wurde
    ;_Tab2()
    EndSwitch
    WEnd
    Func Tab2()
    Msgbox(0,"","Es wurde Tab2 angeklickt")
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von johny1099 (27. März 2013 um 09:31)

  • Guten Morgen BugFix

    vielen Dank für die Unterstützung.

    Ich habe mal wieder vor lauter Bäumen den Wald nicht mehr gesehen.

    Kann man das so lassen aus deiner Sicht, oder würdest Du das anderst lösen ?

    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 615, 440, 192, 124)
    $Button1 = GUICtrlCreateButton("Exit", 496, 384, 81, 33)
    $Tab_1 = GUICtrlCreateTab(20,20,450,300)
    $Tab_Item_1 = GUICtrlCreateTabItem("TAB 1")
    $Tab_Item_2 = GUICtrlCreateTabItem("TAB 2")
    $Tab_Item_3 = GUICtrlCreateTabItem("TAB 3")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $tab_1
    $rc_read_tabitem = GUICtrlRead($tab_1)
    If $rc_read_tabitem = 1 Then ; TAB 2 angeklickt
    _Tab2()
    EndIf
    Case $Button1
    Exit
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd
    Func _Tab2()
    Msgbox(0,"","Es wurde Tab2 angeklickt")
    EndFunc

    [/autoit]
    • Offizieller Beitrag
    [autoit]

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

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

    $Form1 = GUICreate("Form1", 615, 440, 192, 124)
    $Button1 = GUICtrlCreateButton("Exit", 496, 384, 81, 33)
    $Tab_1 = GUICtrlCreateTab(20,20,450,300)
    $Tab_Item_1 = GUICtrlCreateTabItem("TAB 1")
    $Tab_Item_2 = GUICtrlCreateTabItem("TAB 2")
    $Tab_Item_3 = GUICtrlCreateTabItem("TAB 3")
    GUISetState(@SW_SHOW)

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

    While 1
    Switch GUIGetMsg()
    Case $tab_1
    _TabFunc(GUICtrlRead($tab_1))
    Case $Button1, $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func _TabFunc($_Index)
    Msgbox(0,"","Es wurde TabItem-" & $_Index+1 & " angeklickt")
    Switch $_Index
    Case 0
    ; Code für TabItem-1 (Index 0)
    Case 1
    ; Code für TabItem-2 (Index 1)
    Case 2
    ; Code für TabItem-3 (Index 2)
    EndSwitch
    EndFunc

    [/autoit]
  • Hier noch eine andere Möglichkeit. ;)

    [autoit]


    $title = "TabSwitch - Tut"
    Global $tate = 0, $TabSheet[2]
    GUICreate($title, 600, 450)
    $button = GUICtrlCreateButton($title, 10, 10, 200, 25)
    $bnClose = GUICtrlCreateButton($title & " Beenden", 390, 10, 200, 25)
    $Tab = GUICtrlCreateTab(10, 50, 580, 390)
    $TabSheet[0] = GUICtrlCreateTabItem("TabItem 1")
    $btnX = GUICtrlCreateButton("Button X", 72, 168, 121, 22)
    $TabSheet[1] = GUICtrlCreateTabItem("TabItem 2")
    GUICtrlCreateLabel("Vorname", 30, 110, 60, 17)
    GUICtrlCreateInput("Input 1", 100, 110, 80, 21)
    GUICtrlCreateLabel("Nachname", 30, 150, 60, 17)
    GUICtrlCreateInput("Input 2", 100, 150, 80, 21)

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

    GUICtrlCreateLabel("Straße", 30, 190, 60, 17)
    GUICtrlCreateInput("Input 3", 100, 190, 80, 21)
    GUICtrlCreateLabel("Hausnr.", 30, 230, 60, 17)
    GUICtrlCreateInput("Input 4", 100, 230, 80, 21)

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

    GUICtrlCreateLabel("PLZ", 30, 270, 60, 17)
    GUICtrlCreateInput("Input 5", 100, 270, 80, 21)
    GUICtrlCreateLabel("Ort", 30, 310, 60, 17)
    GUICtrlCreateInput("Input 6", 100, 310, 80, 21)
    $btnRead = GUICtrlCreateButton("Eingaben einlesen", 72, 380, 121, 22)
    GUISetState(@SW_SHOW)

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

    While True
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case -3, $bnClose, $btnX
    MsgBox(64, $title, "Viel Spaß wünscht RR04 !" & @TAB, 3)
    ExitLoop
    Case $button
    $tate = BitXOR($tate, 0, 1)
    For $k = 0 To 1 ;i statisch kein Ubound
    GUICtrlSetState($TabSheet[$tate], 16)
    GUICtrlSetData($button, "Wechseln zu TabItem " & BitXOR($tate, 0, 1) + 1)
    Next
    EndSwitch
    WEnd
    ; Ende

    [/autoit]