GUICtrlCreateTabItem Problem...

  • Hi, also

    Ich Brauche einen 2ten Tab mit dem gleichen Inhalt, wie im Ersten Tab aber sobald ich einen Zweiten Tab erstelle wird dieser mir nicht angezeigt:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #include <GUIConstantsEx.au3>

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

    $ini = @ScriptDir & "\" & "config.ini"

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

    GUICreate('Settings', 230, 130)
    GUICtrlCreateTab(10, 10, 200, 100)
    GUICtrlCreateTabItem("English")
    $Checkbox1 = GUICtrlCreateCheckbox("AutoUpdate", 20, 40)
    $Checkbox2 = GUICtrlCreateCheckbox("AutoLogin", 20, 60)
    $Checkbox3 = GUICtrlCreateCheckbox("Newsletter", 20, 80)

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

    $ini_autoupdate = IniRead($ini, "Settings", "AutoUpdate", "")
    If $ini_autoupdate = "yes" Then GUICtrlSetState($Checkbox1, $GUI_CHECKED)
    $ini_autologin = IniRead($ini, "Settings", "AutoLogin", "")
    If $ini_autologin = "yes" Then GUICtrlSetState($Checkbox2, $GUI_CHECKED)
    $ini_newsletter = IniRead($ini, "Settings", "Newsletter", "")
    If $ini_newsletter = "yes" Then GUICtrlSetState($Checkbox3, $GUI_CHECKED)

    GUISetState(@SW_SHOW)
    While 1
    $this = GUIGetMsg()
    Switch $this
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Checkbox1
    $Read = GUICtrlRead($Checkbox1)
    If $Read = 1 Then
    IniWrite($ini, "Settings", "AutoUpdate", "yes")
    ElseIf $Read = 4 Then
    IniWrite($ini, "Settings", "AutoUpdate", "no")
    EndIf
    Case $Checkbox2
    $Read = GUICtrlRead($Checkbox2)
    If $Read = 1 Then
    IniWrite($ini, "Settings", "AutoLogin", "yes")
    ElseIf $Read = 4 Then
    IniWrite($ini, "Settings", "AutoLogin", "no")
    EndIf
    Case $Checkbox3
    $Read = GUICtrlRead($Checkbox3)
    If $Read = 1 Then
    IniWrite($ini, "Settings", "Newsletter", "yes")
    InputBox("E-Mail:", "Enter E-Mail Adress here")
    ElseIf $Read = 4 Then
    IniWrite($ini, "Settings", "Newsletter", "no")
    EndIf
    EndSwitch
    WEnd

    [/autoit]
    • Offizieller Beitrag

    Dein Problem ist es , das wenn du mehrer Tabitems erstellt hast, du nach dem Ende des Tabs folgendes machen mußt .

    [autoit]

    GUICtrlCreateTabItem(""); end tabitem definition

    [/autoit]


    Das steht aber auch in der Hilfe von GuiCreatTabItem .

    Zitat

    Don't forget to close your tabitem creation with GUICtrlCreateTabItem("").

    • Offizieller Beitrag

    Du mußt den Tab immer 'schließen' beim Erstellen. Sonst ist nicht sichtbar, welche Ctrl dazu gehören.

    [autoit]

    GUICreate('Settings', 230, 130)
    GUICtrlCreateTab(10, 10, 200, 100)
    GUICtrlCreateTabItem("English")
    $Checkbox1 = GUICtrlCreateCheckbox("AutoUpdate", 20, 40)
    $Checkbox2 = GUICtrlCreateCheckbox("AutoLogin", 20, 60)
    $Checkbox3 = GUICtrlCreateCheckbox("Newsletter", 20, 80)
    GUICtrlCreateTabItem('') ; Close tabitem.
    GUICtrlCreateTabItem("Deutsch")
    GUICtrlCreateTabItem('') ; Close tabitem.

    [/autoit]

    :S Raupi war schneller...

  • Das kapier ich jetz net.

    Also Die Tabs, sind jetz mit

    [autoit]

    GUICtrlCreateTabItem("")

    [/autoit]

    geschlossen, aber er zeigt mir den 2ten Tab trotzdem net an? Öö>

    • Offizieller Beitrag

    aber er zeigt mir den 2ten Tab trotzdem net an? Öö>


    Nimm mein Bsp. das zeigt beide TabItems an. Übrigens brauchst du zwingend eine Variable für den Tab. Sonst hast du keine Möglichkeit abzufragen, welches Item aktiv ist.

    [autoit]

    If $msg = $Tab Then $Item = _GUICtrlTab_GetCurSel ($Tab)

    [/autoit]
  • Omg *_* Das tut doch scho weh. XD Das erste mal das ich das ÜBERHAUPTNET nachvollziehn kann. Ich hab überhauptkA was ich machen soll. xD Ich kann machen wat ich will er will net. Ob es daher kommt das ich noch nie mit Tabs gearbeitet hab oder ich einfach zu doof bin kA wahrscheinlich letzteres.*>OMG<*

  • Ist doch daoben, das einfach 2 mal^^ also der gleiche Inhalt in Tab A sowie B^^

    bsp:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #include <GUIConstantsEx.au3>

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

    $ini = @ScriptDir & "\" & "config.ini"

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

    GUICreate('Settings', 230, 130)
    GUICtrlCreateTab(10, 10, 200, 100)
    GUICtrlCreateTabItem("English") ;*****Tab A
    $Checkbox1 = GUICtrlCreateCheckbox("AutoUpdate", 20, 40)
    $Checkbox2 = GUICtrlCreateCheckbox("AutoLogin", 20, 60)
    $Checkbox3 = GUICtrlCreateCheckbox("Newsletter", 20, 80)

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

    $ini_autoupdate = IniRead($ini, "Settings", "AutoUpdate", "")
    If $ini_autoupdate = "yes" Then GUICtrlSetState($Checkbox1, $GUI_CHECKED)
    $ini_autologin = IniRead($ini, "Settings", "AutoLogin", "")
    If $ini_autologin = "yes" Then GUICtrlSetState($Checkbox2, $GUI_CHECKED)
    $ini_newsletter = IniRead($ini, "Settings", "Newsletter", "")
    If $ini_newsletter = "yes" Then GUICtrlSetState($Checkbox3, $GUI_CHECKED)

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

    GUISetState(@SW_SHOW)
    While 1
    $this = GUIGetMsg()
    Switch $this
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Checkbox1
    $Read = GUICtrlRead($Checkbox1)
    If $Read = 1 Then
    IniWrite($ini, "Settings", "AutoUpdate", "yes")
    ElseIf $Read = 4 Then
    IniWrite($ini, "Settings", "AutoUpdate", "no")
    EndIf
    Case $Checkbox2
    $Read = GUICtrlRead($Checkbox2)
    If $Read = 1 Then
    IniWrite($ini, "Settings", "AutoLogin", "yes")
    ElseIf $Read = 4 Then
    IniWrite($ini, "Settings", "AutoLogin", "no")
    EndIf
    Case $Checkbox3
    $Read = GUICtrlRead($Checkbox3)
    If $Read = 1 Then
    IniWrite($ini, "Settings", "Newsletter", "yes")
    InputBox("E-Mail:", "Enter E-Mail Adress here")
    ElseIf $Read = 4 Then
    IniWrite($ini, "Settings", "Newsletter", "no")
    EndIf
    EndSwitch
    WEnd

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

    GUICtrlCreateTabItem("Deutsch") ;*****Tab B
    $Checkbox1 = GUICtrlCreateCheckbox("AutoUpdate", 20, 40)
    $Checkbox2 = GUICtrlCreateCheckbox("AutoLogin", 20, 60)
    $Checkbox3 = GUICtrlCreateCheckbox("Newsletter", 20, 80)

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

    $ini_autoupdate = IniRead($ini, "Settings", "AutoUpdate", "")
    If $ini_autoupdate = "yes" Then GUICtrlSetState($Checkbox1, $GUI_CHECKED)
    $ini_autologin = IniRead($ini, "Settings", "AutoLogin", "")
    If $ini_autologin = "yes" Then GUICtrlSetState($Checkbox2, $GUI_CHECKED)
    $ini_newsletter = IniRead($ini, "Settings", "Newsletter", "")
    If $ini_newsletter = "yes" Then GUICtrlSetState($Checkbox3, $GUI_CHECKED)

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

    GUISetState(@SW_SHOW)
    While 1
    $this = GUIGetMsg()
    Switch $this
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Checkbox1
    $Read = GUICtrlRead($Checkbox1)
    If $Read = 1 Then
    IniWrite($ini, "Settings", "AutoUpdate", "yes")
    ElseIf $Read = 4 Then
    IniWrite($ini, "Settings", "AutoUpdate", "no")
    EndIf
    Case $Checkbox2
    $Read = GUICtrlRead($Checkbox2)
    If $Read = 1 Then
    IniWrite($ini, "Settings", "AutoLogin", "yes")
    ElseIf $Read = 4 Then
    IniWrite($ini, "Settings", "AutoLogin", "no")
    EndIf
    Case $Checkbox3
    $Read = GUICtrlRead($Checkbox3)
    If $Read = 1 Then
    IniWrite($ini, "Settings", "Newsletter", "yes")
    InputBox("E-Mail:", "Enter E-Mail Adress here")
    ElseIf $Read = 4 Then
    IniWrite($ini, "Settings", "Newsletter", "no")
    EndIf
    EndSwitch
    WEnd

    [/autoit]
    • Offizieller Beitrag

    FirePanther : Hast du dein Script schon mal laufen lassen ? Fällt dir da was auf ? Der 2. Teil ab Zeile 58 wird niemals ausgeführt .

    Hier ist mal mein Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GuiTab.au3>

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

    #NoTrayIcon

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

    $ini = @ScriptDir & "\" & "config.ini"

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

    GUICreate('Settings', 230, 130)
    GUICtrlCreateTab(10, 10, 200, 100)
    $Item1 = GUICtrlCreateTabItem("English")
    $Checkbox1_E = GUICtrlCreateCheckbox("AutoUpdate", 20, 40)
    $Checkbox2_E = GUICtrlCreateCheckbox("AutoLogin", 20, 60)
    $Checkbox3_E = GUICtrlCreateCheckbox("Newsletter", 20, 80)
    GUICtrlCreateTabItem("")
    $Item2 = GUICtrlCreateTabItem("Deutsch")
    $Checkbox1_D = GUICtrlCreateCheckbox("Automatisches Update", 20, 40)
    $Checkbox2_D = GUICtrlCreateCheckbox("Automatisches Login", 20, 60)
    $Checkbox3_D = GUICtrlCreateCheckbox("Neuigkeiten", 20, 80)
    GUICtrlCreateTabItem("")

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

    $ini_autoupdate = IniRead($ini, "Settings", "AutoUpdate", "")
    If $ini_autoupdate = "yes" Then
    GUICtrlSetState($Checkbox1_E, $GUI_CHECKED)
    GUICtrlSetState($Checkbox1_D, $GUI_CHECKED)
    EndIf
    $ini_autologin = IniRead($ini, "Settings", "AutoLogin", "")
    If $ini_autologin = "yes" Then
    GUICtrlSetState($Checkbox2_E, $GUI_CHECKED)
    GUICtrlSetState($Checkbox2_D, $GUI_CHECKED)
    EndIf
    $ini_newsletter = IniRead($ini, "Settings", "Newsletter", "")
    If $ini_newsletter = "yes" Then
    GUICtrlSetState($Checkbox3_E, $GUI_CHECKED)
    GUICtrlSetState($Checkbox3_D, $GUI_CHECKED)
    EndIf

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

    GUISetState(@SW_SHOW)
    While 1
    $this = GUIGetMsg()
    Select
    Case $This = $GUI_EVENT_CLOSE
    Exit
    Case $This = $Checkbox1_E Or $This = $Checkbox1_D
    If _GUICtrlTab_GetCurFocus($Item1) Then
    $Read = GUICtrlRead($Checkbox1_E)
    Else
    $Read = GUICtrlRead($Checkbox1_D)
    EndIf
    If $Read = 1 Then
    IniWrite($ini, "Settings", "AutoUpdate", "yes")
    ElseIf $Read = 4 Then
    IniWrite($ini, "Settings", "AutoUpdate", "no")
    EndIf
    Case $This = $Checkbox2_E Or $This = $Checkbox2_D
    If _GUICtrlTab_GetCurFocus($Item1) Then
    $Read = GUICtrlRead($Checkbox1_E)
    Else
    $Read = GUICtrlRead($Checkbox1_D)
    EndIf
    If $Read = 1 Then
    IniWrite($ini, "Settings", "AutoLogin", "yes")
    ElseIf $Read = 4 Then
    IniWrite($ini, "Settings", "AutoLogin", "no")
    EndIf
    Case $This = $Checkbox3_E Or $This = $Checkbox3_D
    If _GUICtrlTab_GetCurFocus($Item1) Then
    $Read = GUICtrlRead($Checkbox1_E)
    Else
    $Read = GUICtrlRead($Checkbox1_D)
    EndIf
    If $Read = 1 Then
    IniWrite($ini, "Settings", "Newsletter", "yes")
    InputBox("E-Mail:", "Enter E-Mail Adress here")
    ElseIf $Read = 4 Then
    IniWrite($ini, "Settings", "Newsletter", "no")
    EndIf
    EndSelect
    WEnd

    [/autoit]

    Das einzige was noch eingebaut werden müßte ist, das beide Analoge Checkboxen (deutsch,englisch) synchronisiert werden .

  • FirePanther : Hast du dein Script schon mal laufen lassen ? Fällt dir da was auf ? Der 2. Teil ab Zeile 58 wird niemals ausgeführt .

    Vielleicht ein kleiner versteckter Intelligenztest damit vism auch was selbst macht. ;)

    • Offizieller Beitrag

    Das könnte eventuell auch sein :D