Im TabItem einen Button erstellen

  • Hey Leute:

    Frage 1: versuche gerade, nen button zu erstellen, der NUR für den gewünschten TAB angezeigt wird...
    Frage 2: Und dann hab ich noch die frage, wie ich es hinbekomme, dass ich einem TabItem eine Funktion zuordne.. (also GuiCtrlSetOnEvent für ein TabItem, funktioniert nur leider nicht...)


    Kann mir jemand Helfen...?


    [autoit]

    #include <GUIConstantsEx.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 492, 283, 227, 153)
    $Tab1 = GUICtrlCreateTab(24, 24, 441, 225)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
    $TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
    $Button1 = GUICtrlCreateButton("Erstelle neuen Button", 64, 88, 145, 49, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
    $TabSheet3 = GUICtrlCreateTabItem("TabSheet3")
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $Button2 = GUICtrlCreateButton("erstellt", 304, 88, 129, 49, $WS_GROUP)
    EndSwitch
    WEnd

    [/autoit]

    Einmal editiert, zuletzt von Mr_gitarre (14. September 2010 um 07:50)

  • Hall Mr_Gitarre,

    zu 1: du musst

    [autoit]

    GuiSwitch

    [/autoit]

    vrwenden, also so:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 492, 283, 227, 153)
    $Tab1 = GUICtrlCreateTab(24, 24, 441, 225)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
    $TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
    $Button1 = GUICtrlCreateButton("Erstelle neuen Button", 64, 88, 145, 49, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
    $TabSheet3 = GUICtrlCreateTabItem("TabSheet3")
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    GUISwitch($Form1,$TabSheet1)
    $Button2 = GUICtrlCreateButton("erstellt", 304, 88, 129, 49, $WS_GROUP)
    GUICtrlCreateTabItem("")
    EndSwitch
    WEnd

    [/autoit]

    zu 2. weis ich slbst (noch) nicht. Ist dies überhaupt sinnvoll, da die einzige sinvolle Aufgabe (das wechseln zu diesem TabItem und anzeigen aller Controls darauf) ja automatisch erledigt wird,

    mfg autoBert

  • Vielen dank für 1. ...


    und wegen 2. ...


    Naja: ich wil halt in einem Tab daten anzeigen, dafür müssen diese erfasst werden...

    Und WANN werden sie erfasst...? Immer dann, wenn ich auf dese spezielle Tab klicke....


    Beispiel:


    Wenn ich Tab 2 Anklicke, soll er mir automatisch alle CD laufwerke auslesen und diese Anzeigen...


    Fals ich dann zu tab 3 wechsle, danach wieder zu Tab 2 MUSS er wieder anfagen mit auslesen und anzeigen...

    Verstehste was ich meine...?


    Hat jemand ne Antwort...?

  • ... so vielleicht?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 492, 283, 227, 153)
    $Tab1 = GUICtrlCreateTab(24, 24, 441, 225)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
    $TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
    $Button1 = GUICtrlCreateButton("Erstelle neuen Button", 64, 88, 145, 49, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
    $Edit1 = GUICtrlCreateEdit("", 34, 54, 200, 185)
    $TabSheet3 = GUICtrlCreateTabItem("TabSheet3")
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    GUISwitch($Form1,$TabSheet1)
    $Button2 = GUICtrlCreateButton("erstellt", 304, 88, 129, 49, $WS_GROUP)
    GUICtrlCreateTabItem("")
    Case $Tab1
    If GUICtrlRead($Tab1, 1) = $TabSheet2 Then
    $DriveList = ""
    $aDrives = DriveGetDrive("ALL")
    For $I = 1 To UBound($aDrives) - 1
    $DriveList &= StringUpper($aDrives[$I]) & @CRLF
    Next
    GUICtrlSetData($Edit1, $DriveList)
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • danke:


    kann man das auch ohne ständige abfrage von GUIGetMsg() machen?


    Wäre dann also mit GuiCtrlSetOnEvent ... Damit ich nicht laufend die Schleife durchlaufen und kontrollieren muss, weil ich noch mehr damit vor hab....?


    Danke..!