Tab anzeigen/verstecken oder wahlweise disablen/enablen

  • Hiho,

    ich habe in meinem Programm einen Tab für die Settings.
    dies soll aber nur von "profis" genutzt werden, darum wird der tab ursprünglich nicht angezeigt,
    sondern nur, wenn man im dies im menü auswählt.

    leider harkt es an der umsetzung. bisher habe ich es so gemacht, dass ich den tab erstelle und danach mit

    [autoit]

    _GUICtrlTab_DeleteItem($PageControl1, 2)

    [/autoit]


    "lösche".

    später prüfe ich, ob das menü-item "checked" ist, oder nicht, um den tab ein-/auszublenden.

    [autoit]

    Func _Settings()
    $GetItemState = _GUICtrlMenu_GetItemState(_GUICtrlMenu_GetItemSubMenu (_GUICtrlMenu_GetMenu (WinGetHandle($Title)), 0), 3)
    If $GetItemState = 0 Then
    GUICtrlSetState($MenuItem3, $GUI_Checked)
    $TabSheet3 = GUICtrlCreateTabItem("Settings")
    Else
    GUICtrlSetState($MenuItem3, $GUI_UnChecked)
    _GUICtrlTab_DeleteItem($PageControl1, 2)
    GUICtrlSetState($TabSheet1, $GUI_SHOW)
    EndIf
    EndFunc

    [/autoit]

    theoretisch klappt das auch, aber wenn ich im reiter settings nun arbeite, ihn danach wieder ausblende, sehe ich verschiedene controls dieses
    tabs auch auf anderen tabs. was muss ich anders machen?

    wahlweise wäre es mir auch egal, wenn der tab, bis er aktiviert wird, grau (also nicht nutzbar) dargestellt wird. leider geht dies aber auch nicht
    mit

    [autoit]

    guictrlsetstate($TabSheet3, $GUI_DISABLE)

    [/autoit]
  • Zitat

    Function GUICtrlCreateTabItemTo select a specific tab to be shown when the dialog box open just issue a GUICtrlSetState(-1,$GUI_SHOW) see example

    Also unter derletzten Einstellung des Tabitems (nach dem erstellen) das obige reinschreiben, nur mit diable halt !

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön

  • Nein,du benutzt in deinem Beispiel den befehl nicht nach dem erstellen.
    Ich meine das wiefolgt:

    [autoit]


    Tabitemcreate("lalala")
    guictrlcreatedit(lalala)
    guictrlcreateinput(lalalalalalalala)
    Guictrlsetstate(-1,@???_disable)

    [/autoit]
    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön

  • wenn ich es mit deinem bsp vergleiche, dann ist es genau so, oder oO
    und bei dir würde sich das jetzt nur auf das Input-Feld beziehen ...

    [autoit]

    $TabSheet3 = GUICtrlCreateTabItem("Settings")
    $Group1 = GUICtrlCreateGroup("GUI Postition", 10, 30, 250, 90)
    $Radio1 = GUICtrlCreateRadio("Left Top", 20, 50, 65)
    $Radio2 = GUICtrlCreateRadio("Right Top", 170, 50, 70)
    $Radio3 = GUICtrlCreateRadio("Center", 100, 70, 55)
    $Radio4 = GUICtrlCreateRadio("Right Bottom", 170, 90, 80)
    $Radio5 = GUICtrlCreateRadio("Left Bottom", 20, 90, 80)
    $IniCorner = IniRead($ini, "Position", "Corner", "4")
    If $IniCorner = 1 Then
    GUICtrlSetState($Radio1, 1)
    WinMove($Title, '', 0, 0)
    ElseIf $IniCorner = 2 Then
    GUICtrlSetState($Radio2, 1)
    WinMove($Title, '', @DesktopWidth - 515, 0)
    ElseIf $IniCorner = 3 Then
    GUICtrlSetState($Radio3, 1)
    ;WinMove($Title, '', (@DesktopWidth / 2) - (515 / 2), (@DesktopHeight / 2) - (350 / 2))
    ElseIf $IniCorner = 4 Then
    GUICtrlSetState($Radio4, 1)
    WinMove($Title, '', @DesktopWidth - 515, @DesktopHeight - 350)
    ElseIf $IniCorner = 5 Then
    GUICtrlSetState($Radio5, 1)
    WinMove($Title, '', 0, @DesktopHeight - 350)
    EndIf
    $Group2 = GUICtrlCreateGroup("Transparence", 10, 130, 250, 115)
    GUICtrlCreateLabel("TRANS-Func", 25, 155, 100, 30)
    $SSlider1 = GUICtrlCreateSlider(105, 150, 140, 30, $TBS_BOTTOM)
    GUICtrlSetLimit($SSlider1, 255, 0)
    GUICtrlSetData($SSlider1, IniRead($ini, "Transparence", "Trans", 200))
    GUICtrlCreateLabel("TTI-Func", 25, 210, 100, 30)
    $SSlider2 = GUICtrlCreateSlider(105, 205, 140, 30, $TBS_TOP)
    GUICtrlSetLimit($SSlider2, 255, 0)
    GUICtrlCreateLabel("0", 115, 185)
    GUICtrlCreateLabel("255", 220, 185)
    GUICtrlSetData($SSlider2, IniRead($ini, "Transparence", "TTI", 50))
    $Group3 = GUICtrlCreateGroup("Extras", 270, 30, 230, 245)
    $SButton1 = GUICtrlCreateButton("standard", 30, 250, 80)
    GUICtrlSetOnEvent($SButton1, "_StandardSettings")
    $SButton2 = GUICtrlCreateButton("apply", 160, 250, 80)
    GUICtrlSetOnEvent($SButton2, "_ApplySettings")
    $Checkbox1 = GUICtrlCreateCheckbox("Run with Windows", 280, 50, 120)
    GUICtrlSetState($Checkbox1, IniRead($ini, "Settings", "Run with Windows", "4"))
    $Checkbox2 = GUICtrlCreateCheckbox("Show Tray-Icon on Start", 280, 75, 140)
    GUICtrlSetState($Checkbox2, IniRead($ini, "Settings", "Show Tray-Icon on Start", "1"))
    $Checkbox3 = GUICtrlCreateCheckbox("Enable Hotkeys on Start", 280, 105, 140)
    GUICtrlSetState($Checkbox3, IniRead($ini, "Settings", "Enable Hotkeys on Start", "1"))
    $Checkbox4 = GUICtrlCreateCheckbox("update Window-List every", 280, 135, 142)
    GUICtrlSetState($Checkbox4, IniRead($ini, "Settings", "update Window List", "4"))
    GUICtrlSetOnEvent($Checkbox4, "_EnableUpdate")
    $Input1 = GUICtrlCreateInput(IniRead($ini, "Update Window List", "every Sec.", 10), 427, 135, 40)
    _EnableUpdate()
    GUICtrlCreateLabel("Sec.", 472, 138, 30)
    $Checkbox5 = GUICtrlCreateCheckbox("Enable automatic Sort", 280, 165, 123)
    GUICtrlSetState($Checkbox5, IniRead($ini, "Settings", "Enable automatic Sort", "4"))
    GUICtrlSetOnEvent($Checkbox5, "_EnableSort")
    $Combo1 = GUICtrlCreateCombo("", 340, 190, 90)
    GUICtrlSetData($Combo1, "don´t Sort|Ascending|Descending", IniRead($ini, "Sort", "Method", "don´t Sort"))
    _EnableSort()
    $Checkbox6 = GUICtrlCreateCheckbox("Action for double-click on Item", 280, 220, 165)
    GUICtrlSetState($Checkbox6, IniRead($ini, "Settings", "Action for double-click on Item", "4"))
    GUICtrlSetOnEvent($Checkbox6, "_EnableDoubleClick")
    $Combo2 = GUICtrlCreateCombo("", 310, 245, 150)
    GUICtrlSetData($Combo2, "do Nothing|Show/Hide Window|Set on Top/Back|Set Trans/ Back|Set TTI/Back|Move to Tray/Back", IniRead($ini, "Action", "Double-Click", "do Nothing"))
    _EnableDoubleClick()

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

    GuiCtrlSetState($TabSheet3, $GUI_Hide)

    [/autoit]