Problem mit Tab items

  • Hallo,

    Problem doch nicht gelöst ^^

    Also das mit den Tabs funktioniert ganz gut aber wenn ich in einem Reiter bin und dann dort eine Funktion ausführe die neue Buttons oder edits erstellen soll dann werden diese nicht angezeigt!! habe schon versucht mit guictrlsetstate was dran zu ändern aber nutzt nichts... NEED HELP

    MfG

    MfG

    akira2012

    ***---____---Wer RechtSCHRAIBfehler findet der darf Sie behalLTEN!---___---***

    3 Mal editiert, zuletzt von akira2012 (18. Februar 2008 um 19:38)

  • So gleiches Thema neues Problem - habe oben editiert und brauche hüüülfe ^^

    MfG

    akira2012

    ***---____---Wer RechtSCHRAIBfehler findet der darf Sie behalLTEN!---___---***

  • versteh ich nicht wieso der wichtig ist aber gut ^^

    [autoit]

    #cs ----------------------------------------------------------------------------

    AutoIt Version: 3.2.10.0
    Author: Marko H.

    Script Function: Dieses Programm wechselst automatisch zwischen verschiedenen Designs von WindowsXP


    #ce ----------------------------------------------------------------------------

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

    #include
    #include
    #include
    #include
    #include
    #Include
    #include
    #include

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

    Global $themes, $test = 0, $confirmation = 0, $what_now = 0, $liste, $time_now, $timesave, $time_to_save, $x, $top, $timefield[10], $themefield[10], $y

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

    Opt("GUIOnEventMode", 1)

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

    $data = @ScriptDir & "\Data\themes.ini"
    $data2 = @ScriptDir & "\Data\time.ini"

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

    $hauptgui = GUICreate("Designswitcher 2008", 300, 300)
    GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")
    GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents")
    $tab=GUICtrlCreateTab(1, 1, 600, 600)

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

    $tab1=GUICtrlCreateTabItem("settings")
    $durchsuchen = GUICtrlCreateButton("durchsuchen...", "30", "100", "90", "25")
    GUICtrlSetOnEvent($durchsuchen, "durchsuchen")
    $delete = GUICtrlCreateButton("loeschen", "130", "100", "90", "25")
    GUICtrlSetOnEvent(-1, "loeschen")
    $auflistung = GUICtrlCreateList("", "30", "150", "220", "100")
    $themes = IniReadSectionNames($data)
    If @error = 0 Then
    For $i = 1 To $themes[0]
    _GUICtrlListBox_Addfile ($auflistung, $themes[$i])
    Next
    Else
    $themes = "X"
    EndIf

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

    $tab2=GUICtrlCreateTabItem("zeit")
    $number_of_timefields = GUICtrlCreateInput("1", 30, 50, 30, 25, $ES_NUMBER)
    GUICtrlCreateUpdown($number_of_timefields)
    $create_timefields = GUICtrlCreateButton("Zeitfelder erstellen", 90, 50, 100, 25)
    GUICtrlSetOnEvent($create_timefields, "timefields")

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

    $tab=GUICtrlCreateTabItem("start")
    $start = GUICtrlCreateButton("start", 50, 300)
    GUICtrlSetOnEvent($start, "start")

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

    GUISetState()

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

    While 1
    Sleep(1000)
    WEnd

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

    func test()

    EndFunc

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

    Func timefields ()
    GUICtrlSetState($tab2, $GUI_show)
    FileOpen($data2, 2)
    $top = 100
    Global $x = GUICtrlRead($number_of_timefields)
    $themes = IniReadSectionNames($data)
    Switch $x
    Case 1 To 9
    For $i = 1 To $x
    $timefield[$i] = GUICtrlCreateDate("", 300, $top, 100, 25, $DTS_TIMEFORMAT)
    $themefield[$i] = GUICtrlCreateCombo(" Theme wählen...", 410, $top, 100, 25)
    For $s = 1 To $themes[0]
    GUICtrlSetData(-1, $themes[$s])

    Next

    $top = $top + 30
    Next
    Case 10 To 255555555555555
    MsgBox(0, "Achtung!!", "Bitte wähle eine Zahl zwischen 1 und 9 um das Fenster nicht zu sprengen." & @LF & "Wenn du mehr Designs wählen willst solltest du nochmal mit den Programmierer sprechen!")
    Case Else
    MsgBox(0, "Achtung!!", "Schonmal versucht ein negatives Feld zu erstellen? DAS GEHT NICHT!!!")
    EndSwitch
    GUICtrlSetState($create_timefields, $gui_disable)
    GUICtrlSetState($number_of_timefields, $gui_disable)
    $timesave = GUICtrlCreateButton("Zeiten und Themes übernehmen", 300, $top)
    GUICtrlSetOnEvent($timesave, "timesave")
    FileClose($data2)

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

    EndFunc ;==>timefields

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

    Func start ()
    $y = "25:25:25"
    Global $time_ini = IniReadSectionNames($data2)
    Do
    $time_now = @HOUR & ":" & @MIN & ":" & @SEC
    For $i = 1 To $time_ini[0]
    If $time_now = $time_ini[$i] Then themechange_theme ()
    Global $y = $time_ini[$i]
    Next
    Sleep(100)
    Until $y = $time_now
    EndFunc ;==>start

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

    Func timesave ()

    For $i = 1 To $x
    $time_to_save = GUICtrlRead($timefield[$i])
    $theme_to_save = GUICtrlRead($themefield[$i])
    IniWrite($data2, $time_to_save, $theme_to_save, $x)
    Next


    EndFunc ;==>timesave

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

    Func themechange_theme ()
    $theme = IniReadSection($data2, $y)
    If @error = 0 Then
    ShellExecute($theme[1][0])
    EndIf

    EndFunc ;==>themechange_theme

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

    Func SpecialEvents ()

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

    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    Exit

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

    Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE

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

    Case @GUI_CtrlId = $GUI_EVENT_RESTORE
    EndSelect

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

    EndFunc ;==>SpecialEvents

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

    Func loeschen ()
    $listitem = GUICtrlRead($auflistung)
    $nummer = _GUICtrlListBox_FindString ($auflistung, $listitem)
    _GUICtrlListBox_DeleteString ($auflistung, $nummer)
    IniDelete($data, $listitem)
    EndFunc ;==>loeschen

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

    Func durchsuchen ()
    $themes = IniReadSectionNames($data)
    $files_chose_theme = FileOpenDialog("Wählen Sie ein Design aus", "C:\", "Windwos Themes(*.msstyles)", 1)
    $confirmation = MsgBox(0x4, "Echt jetzt?", "Willst du diese Theme (" & $files_chose_theme & ") wirklich überconfirmation?")
    If $confirmation = 6 Then
    If Not $themes = "X" Then
    For $i = 1 To $themes[0]
    If $themes[$i] = $files_chose_theme Then
    MsgBox(0, "Pustekuchen", "Dieses Theme wurde bereits hinzugefügt!")
    $test = 1
    EndIf
    Next
    EndIf
    If $test <> 1 Then
    _GUICtrlListBox_Addfile ($auflistung, $files_chose_theme)
    IniWriteSection($data, $files_chose_theme, "1")
    Else
    _insert ()
    EndIf
    Else
    _insert ()

    EndIf

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

    EndFunc ;==>durchsuchen

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

    Func _insert ()
    Do

    $test = 0
    $what_now = MsgBox(0x4, "Was nun?", "Willst du eine anderes Theme wählen?")
    If $what_now = 6 Then
    $files_chose_theme = FileOpenDialog("Wählen Sie ein Design aus", "C:\", "Windwos Themes(*.msstyles)", 1)
    $confirmation = MsgBox(0x4, "Echt jetzt?", "Willst du diese Theme (" & $files_chose_theme & ") wirklich überconfirmation?")
    If $confirmation = 6 Then
    If Not $themes = "X" Then
    For $i = 1 To $themes[0]
    If $themes[$i] = $files_chose_theme Then
    MsgBox(0, "Pustekuchen", "Dieses Theme wurde bereits hinzugefügt!")
    $confirmation = 7
    $test = 1
    EndIf
    Next
    EndIf
    If $test <> 1 Then
    _GUICtrlListBox_Addfile ($auflistung, $files_chose_theme)
    IniWriteSection($data, $files_chose_theme, "1")
    EndIf
    EndIf

    EndIf

    Until $confirmation = 6 Or $what_now = 7
    EndFunc ;==>_insert

    [/autoit]


    </GuiTab.au3></GuiConstantsEx.au3></GuiDateTimePicker.au3></File.au3></guilistbox.au3></guilistview.au3></Date.au3></GuiConstants.au3>


    Es geht sich um den Reiter Zeit. Dort werden nicht die Felder erstellt.

    MfG

    akira2012

    ***---____---Wer RechtSCHRAIBfehler findet der darf Sie behalLTEN!---___---***

  • so müsste es klappen

    Spoiler anzeigen
    [autoit]

    Func timefields ()
    GUICtrlSetState($tab2, $GUI_show)
    FileOpen($data2, 2)
    $top = 100
    Global $x = GUICtrlRead($number_of_timefields)
    $themes = IniReadSectionNames($data)
    GUISwitch($hauptgui,$tab2)
    Switch $x
    Case 1 To 9
    For $i = 1 To $x
    $timefield[$i] = GUICtrlCreateDate("", 30, $top, 100, 25, $DTS_TIMEFORMAT)
    $themefield[$i] = GUICtrlCreateCombo(" Theme wählen...", 410, $top, 100, 25)
    For $s = 1 To $themes[0]
    GUICtrlSetData(-1, $themes[$s])
    Next

    $top = $top + 30
    Next
    Case 10 To 255555555555555
    MsgBox(0, "Achtung!!", "Bitte wähle eine Zahl zwischen 1 und 9 um das Fenster nicht zu sprengen." & @LF & "Wenn du mehr Designs wählen willst solltest du nochmal mit den Programmierer sprechen!")
    Case Else
    MsgBox(0, "Achtung!!", "Schonmal versucht ein negatives Feld zu erstellen? DAS GEHT NICHT!!!")
    EndSwitch
    GUICtrlSetState($create_timefields, $gui_disable)
    GUICtrlSetState($number_of_timefields, $gui_disable)
    $timesave = GUICtrlCreateButton("Zeiten und Themes übernehmen", 300, $top)
    GUICtrlSetOnEvent($timesave, "timesave")
    FileClose($data2)
    GUICtrlCreateTabItem("")

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

    EndFunc ;==>timefields

    [/autoit]
    [autoit]

    GUISwitch($hauptgui,$tab2)

    [/autoit]


    Notwendig, damit AutoIt weiß auf welchem Tab die Elemente erstellt werden sollen :)

    [autoit]

    $timefield[$i] = GUICtrlCreateDate("", 30, $top, 100, 25, $DTS_TIMEFORMAT)

    [/autoit]


    das zu erstellende Element sollte innerhalb der GUI liegen (30 statt 300) :rofl:


    [autoit]

    GUICtrlCreateTabItem("")

    [/autoit]


    um den Tab wieder zu schließen


    auf dem tab "start" mußt du auch 300 durch 30 ersetzen ;)

  • danke und *dooooh* Die einfachsten sachen sieht man immer nicht... naja ich werds mir merken. Das guiswitch war auf jedenfall ein sehr guter hinweis!

    Danke nochmal


    EDIT: Mir ist grad noch was aufgefallen! Ich habe bemerkt das keine Daten mehr übernommen werden im "themefield" Wodran kann das liegen?

    MfG

    akira2012

    ***---____---Wer RechtSCHRAIBfehler findet der darf Sie behalLTEN!---___---***