TAB Datenfelder per Laufzeit ändern

  • Hallo,

    folgendes Problem bei meinen Tabs:

    1. Die Tabs werden per Gui angezeigt.
    2. Bestimmte Felder sollen per Laufzeit einem bestimmten TAB hinzugefügt werden.

    Also: Wenn Tabsheet 2 bereits existiert, dann werden die Felder per Laufzeit
    für Tabsheet 2 automatisch hinzugefügt.

    Spoiler anzeigen
    [autoit]


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

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

    $Form1 = GUICreate("Form1", 625, 443, 192, 124)
    $Tab1 = GUICtrlCreateTab(40, 56, 417, 337)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    $TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
    GUICtrlCreateTabItem("")
    ;$Button1 = GUICtrlCreateButton("Tab Create", 496, 80, 75, 25, $WS_GROUP)
    ;$Button2 = GUICtrlCreateButton("Felder", 496, 150, 75, 25, $WS_GROUP)
    $TabSheet2 = GUICtrlCreateTabItem("Daten")
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)
    GUISetState(@SW_SHOW)

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

    Global $TabSheet2

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

    _Felder()

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

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

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

    EndSwitch

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

    WEnd

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

    FUnc _Felder()
    If IsInt($TabSheet2) Then
    ;
    $TabSheet2 = GUICtrlCreateTabItem("Daten")
    $Quelle = GUICtrlCreateInput("Quelle", 48, 52, 381, 21)

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

    $Label1 = GUICtrlCreateLabel("Quellordner", 48, 28, 58, 17)
    $Label2 = GUICtrlCreateLabel("Zielordner", 48, 88, 51, 17)
    $Ziel = GUICtrlCreateInput("Ziel", 48, 108, 385, 21)

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

    EndIf
    ;_GUICtrlTab_DeleteItem($Tab1, 1)
    endfunc

    [/autoit]


    Hoffe Ihr habt da ne Idee
    Die Funktion stimmt nicht, da die Felder ja hinzugefügt werden sollen.
    Also kein neuer TAB, sondern Daten zum TAB


    Liebe Grüße
    Ilse ;)

    2 Mal editiert, zuletzt von Ilse (16. Juli 2012 um 20:43)

    • Offizieller Beitrag

    Was du brauchst ist GUISwitch


    Spoiler anzeigen
    [autoit]

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

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

    $Form1 = GUICreate("Form1", 625, 443, 192, 124)
    $Tab1 = GUICtrlCreateTab(40, 56, 417, 337)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    $TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
    GUICtrlCreateTabItem("")
    ;$Button1 = GUICtrlCreateButton("Tab Create", 496, 80, 75, 25, $WS_GROUP)
    ;$Button2 = GUICtrlCreateButton("Felder", 496, 150, 75, 25, $WS_GROUP)
    $TabSheet2 = GUICtrlCreateTabItem("Daten")
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)
    GUISetState(@SW_SHOW)

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

    Global $TabSheet2

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

    _Felder()

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

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

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

    EndSwitch

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

    WEnd

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

    Func _Felder()
    If IsInt($TabSheet2) Then
    ;
    GUISwitch($Form1, $TabSheet2); Per GuiSwitch auf das Tab umschalten, auf welchem die Controls erstellt werden sollen
    ; Wird nicht GuiSwitch verwendet, so werden die Controls ausserhalb des Tab-Controls erstellt, d.H. sie sind in jedem Tab sichtbar.
    $Quelle = GUICtrlCreateInput("Quelle", 48, 82, 381, 21)
    $Label1 = GUICtrlCreateLabel("Quellordner", 48, 112, 58, 17)
    $Ziel = GUICtrlCreateInput("Ziel", 48, 142, 385, 21)
    $Label2 = GUICtrlCreateLabel("Zielordner", 48, 172, 51, 17)
    EndIf
    ;_GUICtrlTab_DeleteItem($Tab1, 1)
    EndFunc ;==>_Felder

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