Gui mit Tabs

  • Hallo Community,

    schreibe gerade ein GUI für ein Projekt von mir.
    Dauert noch ein wenig weil ich ja Anfänger bin und Programmieren eigentlich nicht mein Themengebiet ist^^

    Ich habe ein GUI mit 3 Tabs.
    1. Backup
    2. Options
    3. Update

    Auf dem Backup Tab läuft die eigentliche Anwendung. Nämlich ein Backup Programm^^
    Das klappt auch alles Ausnahmsweise.

    Bei Options steht noch nichts.

    Bei Update und das ist mein Problem ist ein Button "Check Version"
    Wenn ich diesen Drücke wird eine Funktion gestartet die sich "_update_check" nennt.
    Diese Funktion erstellt ein Label in welchem die installierte Version angezeigt wird.
    Leider aber nicht nur auf dem Update Tab sondern auf allen.

    Wie kann ich der Funktion sagen das sie nur auf "Update" was einfügen soll?

    Hier mal die Funktion:
    Nicht wundern ist nicht so Ordentlich Programmiert^^


    [autoit]


    Func _update_check() ;Das wird in jedem Tab geschrieben! Wie kann ich das ändern? Es soll nur in Update sein
    GuiCtrlCreateLabel("Sie haben Version " & $Version & " installiert.", 30, 200, 200, 30)
    GUICtrlSetBkColor(-1, 0x000000) ;Label wird schwarz
    GUICtrlSetFont(-1, 10, 800, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF) ;Schrift wird weiss
    If $Version = $inet_Version Then
    GuiCTRLCreateLabel("Sie haben die aktuellste Version installiert", 30, 250, 200, 30)
    GUICtrlSetBkColor(-1, 0x000000)
    GUICtrlSetFont(-1, 10, 800, 0 ,"Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    Else
    MsgBox(0, "Update " & $inet_Version, "Eine neue Version steht zum Download bereit.")
    GUICtrlCreateButton("Update to " & $inet_Version, 30, 250, 200, 40)
    GUICtrlSetOnEvent(-1,"_update_start")
    GUICtrlCreateButton("View changelog", 30, 300, 200, 40)
    GUICtrlSetOnEvent(-1, "_changelog")
    EndIf
    EndFunc

    [/autoit]

    Wenn die Funktion an sich nicht ausreicht kann ich auch den kompletten Quellcode posten

    MfG
    L0c4lh0sT

    Einmal editiert, zuletzt von L0c4lh0sT (24. März 2009 um 11:46)

  • Erstmal Danke für den Tipp aber könntest du mir das anhand eines Beispiels erklären?
    Hab das jetzt zwar versucht wie du das gesagt hast aber es klappt nicht

    Hab das mit dem Label jetzt anders Gelöst.
    Jetzt hab ich nur das Problem mit den Buttons.

    Diese sollen erstellt werden wenn eine neuere Version im vorhanden ist.
    Wie könnte ich denen denn Werte zuweisen?
    Oder kann ich die irgendwie verstecken bis eine neue version raus ist?

    Einmal editiert, zuletzt von L0c4lh0sT (24. März 2009 um 11:22)

  • Moin, ich mach jetzt mal nur ein Beispiel mit Pseudocode, die Syntax, Variablen usw musst Du dann selber anpassen/einfügen

    [autoit]


    ;Hauptprogram
    _CreateGUI()

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

    While 1
    ;Mach was immer Du willst ;) und irgendwo:
    If _UpdateCheck() then
    GuiCtrlSetData($MeinLabel, "Neue Version")
    GuiCtrlSetState ($MeinLabel, @GUI_SHOW)
    endif
    Sleep (50) ;Zur Entlastung der CPU, sollte man immer drin haben
    Wend

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

    Func _CreateGUI()

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

    ;Hier allen Code, der die GUI erzeugt

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

    $tab= GUICtrlCreateTab(xxxx)

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

    $tab1 = GUICtrlCreateTabItem("Backup")
    $tab2 = GUICtrlCreateTabItem("Options")
    $tab3 = GUICtrlCreateTabItem("Update")
    $MyLabel = GuiCtrlCreateLabel ("Hier kommt der Text hin") ;Dadurch wird genügend Platz auf der GUI reserviert
    GuiCtrlSetState ($MyLabel, $GUI_HIDE)
    GUICtrlCreateTabItem()

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

    Endfunc

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

    Func _UpdateCheck()
    ;Und hier nur die Prüfung

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

    Return True

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

    EndFunc

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

    Damit solltest Du weiterkommen. Damit trennst Du die einzelnen Aufgaben, GUI Erzeugung, Auswertung, usw von einander. Ist besser lesbar, und in AutoIt sogar nur so realisierbar.

    Einmal editiert, zuletzt von TrueMu (24. März 2009 um 11:43)