2 GUIs verknüpfen

  • Hallo,

    ich steh aufm Schlauch. Ich habe eine GUI in der 4 Tabs dargestellt werden. Ich möchte jetzt gerne eine 2. GUI >NUR< in Tab2 anzeigen lassen. Das dumme ist nur das sie momentan in allen Tabs sichtbar ist.

    Ich hab erst gedacht das ich mit

    [autoit]

    GUIGetCursorInfo

    [/autoit]

    das Problem lösen kann. Sprich wenn der User mit der Maus auf den 2. Tab klick das sie angezeigt wird und wenn einer der anderen 3 Tabs angeklickt wird wird sie wieder versteckt. Nur kommt scheinbar kein Array zustande. Kann man

    [autoit]

    GUIGetCursorInfo

    [/autoit]

    nicht mit Tabs nutzen? In der Hilfe konnte ich dazu jetzt nichts finden. ?(

    Hat jemand einen Tipp dazu?

    Einmal editiert, zuletzt von Streat (13. Juli 2011 um 18:14)

  • der quelltext bzw. die Relevanten Teile des Quelltextes wären hilfreich, sowohl beim verstehen deiner Frage, als auch zum lösen deines Problems

    MFG inventor

    wenn's weitere Fragen gibt -> PN
    wenn da keine Antwort kommt, überdenk deine Frage noch mal

  • Hallo Streat,

    herzlich willkommen im Forum und viel Spass mit AutoIt.

    Hier kannst du dir die deutsche Hilfe herunterladen.
    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/Tutorial Sehr hilfreich ist auch das Buch von peethebee .

    und jetzt zu deinem Problem, deine Probleme sind für mich ohne Skriptcode nicht nachvollziehbar. Da man eine Hilfsgui bei Tabs eigentlich nur dann benötigt wenn man ein Tab innerhalb eines Tabs darstellen will hier einmal ein Beispiel aus dem engl. Forum:

    Spoiler anzeigen
    [autoit]

    ; Example of TAB in TAB ctrl ;http://www.autoitscript.com/forum/topic/44…240#entry328240
    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Global $main_GUI,$ok_button,$cancel_button

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

    ; This window has 2 ok/cancel-buttons
    $main_GUI = GUICreate("TAB in TAB",260,250,-1,-1)
    $ok_button = GUICtrlCreateButton("OK",40,220,70,20)
    $cancel_button = GUICtrlCreateButton("Cancel",150,220,70,20)

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

    ; Create the first child window that is implemented into the main GUI
    $child1 = GUICreate("",230,170,15,35,BitOr($WS_CHILD,$WS_TABSTOP),-1,$main_GUI)
    $child_tab = GUICtrlCreateTab(10,10,210,150)
    $child11tab = GUICtrlCreateTabItem("1")
    $child12tab = GUICtrlCreateTabItem("2")
    GUICtrlCreateTabItem("")

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

    GUISetState()

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

    ; Create the second child window that is implemented into the main GUI
    $child2 = GUICreate("",230,170,15,35,BitOr($WS_CHILD,$WS_TABSTOP),-1,$main_GUI)
    $listview2 = GUICtrlCreateListView("Col1|Col2",10,10,210,150,-1,$WS_EX_CLIENTEDGE)
    GUICtrlCreateListViewItem("ItemLong1|ItemLong12", $listview2)
    GUICtrlCreateListViewItem("ItemLong2|Item22", $listview2)

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

    ; Switch back the main GUI and create the tabs
    GUISwitch($main_GUI)
    $main_tab = GUICtrlCreateTab(10,10,240,200)
    $child1tab = GUICtrlCreateTabItem("Child1")
    $child2tab = GUICtrlCreateTabItem("Child2")
    GUICtrlCreateTabItem("")

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg(1)
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE, $cancel_button
    ExitLoop

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

    Case $main_tab
    Switch GUICtrlRead($main_tab)
    Case 0
    GUISetState(@SW_HIDE,$child2)
    GUISetState(@SW_SHOW,$child1)

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

    Case 1
    GUISetState(@SW_HIDE,$child1)
    GUISetState(@SW_SHOW,$child2)
    EndSwitch
    EndSwitch
    WEnd

    [/autoit]

    Wie du daran siehst wird

    [autoit]

    GUIGetCursorInfo

    [/autoit]

    dazu nicht benötigt,

    mfg autoBert

  • [autoit]


    $Wol_Gui = GUICreate("Wake on LAN - GUI", 283, 354)
    $Wol_Tabs = GUICtrlCreateTab(0, 0, 290, 25)

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

    ...
    ...
    ..

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

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

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

    Case $Wol_Tabs
    $current = GUICtrlRead($Wol_Tabs)
    Switch $current
    Case 0
    _GUICtrlIpAddress_ShowHide ($Input_IP, @SW_HIDE)
    _GUICtrlIpAddress_ShowHide ($Input_BC, @SW_HIDE)
    Case 1
    If GUICtrlRead($Radio_Save)=1 Then
    _GUICtrlIpAddress_ShowHide ($Input_IP, @SW_SHOW)
    _GUICtrlIpAddress_ShowHide ($Input_BC, @SW_SHOW)
    EndIf
    EndSwitch

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

    Case $Radio_Del

    [/autoit]

    Könnte Dir evtl. helfen habe mal das Problem gehabt das die IP Form auf allen Tabs sichtbar war.

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Danke an alle, besonders Autobert. In deinem Beispiel ist genau der Denkanstoß den ich gesucht hatte.

    [autoit]

    Case $main_tab
    Switch GUICtrlRead($main_tab)
    Case 0
    GUISetState(@SW_HIDE,$child2)
    GUISetState(@SW_SHOW,$child1)

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

    Case 1
    GUISetState(@SW_HIDE,$child1)
    GUISetState(@SW_SHOW,$child2)
    EndSwitch

    [/autoit]

    Danke ;) jetzt wird die 2 GUI nur angezeigt wenn auch der zweite Tab aktiviert ist.