Gruppe verstecken/anzeigen

  • Moin moin,

    Habe nen kleines "Problem", und zwar habe ich eine GUI mit einem Tabmenü. Ich hätte gerne ein zweites Tabmenü in dem Tabmenü gemacht, aber laut Hilfe geht das nicht (habe ich auch feststellen müssen ^^)
    Nun will ich die angezeigten Sachen über Buttons oder ne Combobox in dem Registerblatt wechseln. Da ich nicht jedes item einzeln verstecken/anzeigen möchte habe ich mit gedacht ich Gruppier den ganzen Kram.
    Jedoch stehe ich grad auf dem Schlauch.... Habe schon versucht der ControlID einfach mal den Status GUI_HIDE zu verpassen, da wird jedoch nur (logischerweise) der Rahmen der Gruppe versteckt.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 625, 443, 192, 124)
    $Group1 = GUICtrlCreateGroup("Group1", 8, 16, 449, 417,$WS_GROUP)
    $Input1 = GUICtrlCreateInput("Input1", 56, 40, 121, 21,$WS_GROUP)
    $Button3 = GUICtrlCreateButton("Button3", 64, 96, 75, 25, $WS_GROUP)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 56, 152, 97, 17,$WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button1 = GUICtrlCreateButton("Visible", 480, 24, 123, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Invisible", 480, 64, 123, 25, $WS_GROUP)
    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
    GUICtrlSetState($Group1,$GUI_HIDE)
    Case $Button2
    GUICtrlSetState($Group1,$GUI_SHOW)
    EndSwitch
    WEnd

    [/autoit]

    Weiß da jemand Rat (genialer wäre noch nen Tabmenü im Tabmenü ^^)

    Danke schon mal ;)

    21 is only half the truth.

    Einmal editiert, zuletzt von Mahagon (30. April 2010 um 15:22)

  • Okay habe selbst schon was gefunden ^^
    Wenn einer Interesse hat:

    Spoiler anzeigen
    [autoit]

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

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

    Dim $gruppe1[3]

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 625, 443, 192, 124)
    $gruppe1[0] = GUICtrlCreateInput("Input1", 56, 40, 121, 21)
    $gruppe1[1] = GUICtrlCreateButton("Button3", 64, 96, 75, 25)
    $gruppe1[2] = GUICtrlCreateCheckbox("Checkbox1", 56, 152, 97, 17)
    $Button1 = GUICtrlCreateButton("Visible", 480, 24, 123, 25)
    $Button2 = GUICtrlCreateButton("Invisible", 480, 64, 123, 25)
    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
    _controlssetstate($gruppe1,$GUI_SHOW)
    Case $Button2
    _controlssetstate($gruppe1,$GUI_HIDE)
    EndSwitch
    WEnd

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

    Func _controlssetstate($group,$state)
    For $i = 0 To UBound($group)-1
    GUICtrlSetState($group[$i],$state)
    Next
    EndFunc

    [/autoit]

    Ist zwar nicht ganz die gewünschte Lösung, aber es funktioniert.

    21 is only half the truth.

  • Und wenn man daraus Tab im Tab machen will, kann man für die Tab-Controls die UDF-Funktionen verwenden (_GUICtrlTab_Create). Zusammen mit den vorhin verlinkten Funktionen kann man da so ziemlich überzeugende Tabs erstellen ;)