Viele Controls sinnvoll unterbingen

  • Hallo,

    Ich arbeite gerade an einem Multiple-Image-Converter Programm, mit dem man z.B. seine Urlaubsbilder schnell und einfach anpassen und verkleinern kann. Dabei besteht die Möglichkeit alle Bilder mit den selben Einstellungen zu konvertieren, jedoch möchte ich auch die Möglichkeit anbieten, jedes Bild nacheinander anzupassen zu können (Was z.B. für Fotografen für Farbbalance etc.) sinnvoll ist.

    Besonderen Wert möchte ich auf eine einfache Bedienung legen. Man soll sich nicht wie bei z.B. Photoshop oder Gimp durch 100 Menüs klicken müssen, um Bildparameter anzupassen, ich möchte eine sehr einfache "Step by Step" Oberfläche anbieten.

    Was seht ihr für Möglichkeiten um übersichtlich, aber technisch einfach für den Nutzer, mehrere Controls darzustellen?

    Eventuell dachte ich an ein Tab-Control?

    Ich wollte mir einfach mal mehrere Ratschläge und Möglichkeiten von euch einholen.


    Bisher sieht das ganze so aus [Anhang] (Was mir jedoch nicht gefällt). Da noch weitere Effektmöglichkeiten und Anzeigen (Bildauflösung vorher/nacher, Dateigröße vorher/nacher, etc) dazukommen, wird es nochmals mehr.

    Mit meiner aktuellen Darstellung wird das definitiv zu sehr überladen und wirkt zusätzlich unprofessionell.

    Danke schonmal

    • Offizieller Beitrag

    Konzepte sind natürlich stark vom eigenen Geschmack abhängig.
    Mir persönlich gefällt nicht, wenn soviele Slider vorhanden sind. Ich bevorzuge Lösungen dieser Art:
    - jeder Parameter erhält einen Button mit Style zum Einrasten
    - auf dem Button ist der aktuelle Wert sichtbar
    - wird der Button betätigt (könnte man optisch noch aufpeppen, indem man dann einen z.B. roten Rahmen drumlegt), läßt sich der Wert ändern über:
    - ein Paar Plus-/Minus- Schaltflächen unterhalb der Parameterbutton
    Dann hast du schon gewaltig an Platz eingespart und siehst trotzdem alles auf einen Blick.
    Alternativ zu den Button kannst du auch Label verwenden oder jedes andere Control, das einen Klick verwertet. ;)

  • Dein Vorschlag ist generell gut, aber in der Praxis nicht ganz so geeignet.

    Die GDI+ Effekt Funktionen haben teilweise unterschiedliche Schrittweiten. So gibt es Schrittweiten von -180 bis +180, teilweise nur von 0-100 etc.

    Es könnte relativ nervig werden, wenn man z.B 100 Stufen manuell klicken muss. Desweiteren sieht man auch die Minimal und Maximalwerte nicht bei einer "nur Zahl-Anzeige". Bei einem Slider kann man zumindest optisch erahnen wie weit der Wert noch einstellbar wäre.


    Das man aber zusätzlich noch eine Zahl neben dem Slider einblendet oder einen Slider verwendet der auch per Buttons einstellbar ist, das wäre definitiv sinnvoll.

  • Du könntest auch eine Art selbstgemachtest Tab-Control verwenden... Ich habe irgendwo ein Beispiel dafür, müsste ich aber erst suchen.
    Du könntest zum Beispiel die obere Reihe in dem grauen Fenster durch eine Art selbstgebautes Tab-Control ersetzen, was dann je nach Bedarf/Klick die richtigen Einstellungen einblendet und/oder versteckt. Das könnte man optisch auch eher anpassen.

    Gruß

  • Hey KloMeister,
    ich finde das Design gar nicht so schlecht. Mir gefallen vor allem die Farben. Ich hab mal ne Frage zur Listview auf der linken Seite. Wie hast du den Header "Loaded Images" mit dem grauen Hintergrund versehen?

    Grüße autoiter

  • Das ist einfach nur ein standard Label mit grauem Hintergrund. Um der Listbox und dem Label befindet sich noch ein Frame.

    Hol dir den "Koda Form Designer", damit kannst du relativ easy GUI's erstellen.

  • Wie wäre es mit Hover Menüs? Hab hier mal eine etwas effektreichere und moderne GUI gebastelt, aber bislang keine Zeit gehabt das weiter auszubauen um es letztlich im eigentlichen Programm nutzen zu können:

    Spoiler anzeigen
    [autoit]


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

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

    #include "GUICtrlOnHover.au3"

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

    $gMain = GUICreate("Form1", 900, 600, -1, -1, $WS_POPUPWINDOW,$WS_EX_CONTROLPARENT)
    GUISetBkColor(0xFFFFFF,$gMain)
    GUISetFont(10,400,0,"Calibri",$gMain)

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

    ; Menübereich links
    $dummyMenuBarS = GUICtrlCreateDummy()
    $lAreaLeft = __GUICtrlCreateLabel("" ,-600, 0, 900, 600,Default,$GUI_WS_EX_PARENTDRAG, 0x0000CC)
    $lTitle = __GUICtrlCreateLabel("Test Tool 2014" , 20, 20, 260, 50,$SS_CENTER,$GUI_WS_EX_PARENTDRAG, 0x0000CC,0xFFFFFF,"Calibri",16,600)
    $lMenuFolge = __GUICtrlCreateLabel("Folgen Modus" , 20, 160, 250, 30,$SS_RIGHT,$GUI_WS_EX_PARENTDRAG, 0x0000CC,0xFFFFFF,"Calibri",16,400,True,"_Hover_Func_Menu", "_Hover_Func_Menu")
    $lMenuStaffel = __GUICtrlCreateLabel("Staffel Modus" , 20, 200, 250, 30,$SS_RIGHT,$GUI_WS_EX_PARENTDRAG, 0x0000CC,0xFFFFFF,"Calibri",16,400,True,"_Hover_Func_Menu", "_Hover_Func_Menu")
    $lMenuKalender = __GUICtrlCreateLabel("Kalender Modus" , 20, 240, 250, 30,$SS_RIGHT,$GUI_WS_EX_PARENTDRAG, 0x0000CC,0xFFFFFF,"Calibri",16,400,True,"_Hover_Func_Menu", "_Hover_Func_Menu")
    $lMenuEinstellungen = __GUICtrlCreateLabel("Globale Einstellungen" , 20, 280, 250, 30,$SS_RIGHT,$GUI_WS_EX_PARENTDRAG, 0x0000CC,0xFFFFFF,"Calibri",16,400,True,"_Hover_Func_Menu", "_Hover_Func_Menu")
    $lMenuSDB = __GUICtrlCreateLabel("Seriendatenbank" , 20, 320, 250, 30,$SS_RIGHT,$GUI_WS_EX_PARENTDRAG, 0x0000CC,0xFFFFFF,"Calibri",16,400,True,"_Hover_Func_Menu", "_Hover_Func_Menu")
    $lMenuStatistik = __GUICtrlCreateLabel("Statistik" , 20, 360, 250, 30,$SS_RIGHT,$GUI_WS_EX_PARENTDRAG, 0x0000CC,0xFFFFFF,"Calibri",16,400,True,"_Hover_Func_Menu", "_Hover_Func_Menu")
    $dummyMenuBarE = GUICtrlCreateDummy()

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

    GUICtrlSetState($lAreaLeft,$GUI_DISABLE) ; wichtig sonst funktioniert Hover für darüberliegende Controls nicht!

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

    ; Bereich Login
    $dummyLoginS = GUICtrlCreateDummy()
    $lAreaLogin = __GUICtrlCreateLabel("" , 280, 200, 340, 135,Default,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF)
    $lUser = __GUICtrlCreateLabel("Benutzer" , 300, 220, 80, 25,Default,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400)
    $iUser = GUICtrlCreateInput("" , 390, 220, 210, 25,BitOR($WS_BORDER,$ES_AUTOHSCROLL),$GUI_WS_EX_PARENTDRAG)
    $lPW = __GUICtrlCreateLabel("Passwort" , 300, 255, 80, 25,Default,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400)
    $iPW = GUICtrlCreateInput("" , 390, 255, 210, 25,BitOR($WS_BORDER,$ES_AUTOHSCROLL,$ES_PASSWORD),$GUI_WS_EX_PARENTDRAG)
    $bLoginBeenden = __GUICtrlCreateLabel("Beenden" , 390, 290, 100, 25,BitOR($SS_CENTERIMAGE,$SS_CENTER,$WS_BORDER),$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400,True,"_Hover_Func_Button", "_Hover_Func_Button")
    $bLogin = __GUICtrlCreateLabel("Login" , 500, 290, 100, 25,BitOR($SS_CENTERIMAGE,$SS_CENTER,$WS_BORDER),$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400,True,"_Hover_Func_Button", "_Hover_Func_Button")
    $dummyLoginE = GUICtrlCreateDummy()

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

    GUICtrlSetState($lAreaLogin,$GUI_DISABLE) ; wichtig sonst funktioniert Hover für darüberliegende Controls nicht!

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

    ; Arbeitsbereich rechts
    $dummyWorkAreaS = GUICtrlCreateDummy()
    $lAreaRight = __GUICtrlCreateLabel("" , 300, 0, 600, 600,Default,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF)
    $bMinimieren = __GUICtrlCreateLabel("_" , 830, 10, 30, 30,BitOR($SS_CENTERIMAGE,$SS_CENTER),$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",16,400,True,"_Hover_Func_Button", "_Hover_Func_Button")
    $bBeenden = __GUICtrlCreateLabel("X" , 860, 10, 30, 30,BitOR($SS_CENTERIMAGE,$SS_CENTER),$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",16,400,True,"_Hover_Func_Button", "_Hover_Func_Button")
    $dummyWorkAreaE = GUICtrlCreateDummy()

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

    GUICtrlSetState($lAreaRight,$GUI_DISABLE) ; wichtig sonst funktioniert Hover für darüberliegende Controls nicht!

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

    ; Arbeitsbereich rechts Folgen Modus

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

    $dummySerienBoxS = GUICtrlCreateDummy()
    ;$lAreaSerieBox = __GUICtrlCreateLabel("" , 310, 50, 580, 125,$SS_BLACKFRAME,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF)
    $lAreaSerieTitle = __GUICtrlCreateLabel("Serienauswahl" , 320, 60, 150, 30,Default,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",16,400)
    $cSerie = GUICtrlCreateCombo("" , 320, 100, 250, 25,Default,$GUI_WS_EX_PARENTDRAG)
    $cFolge = GUICtrlCreateCombo("" , 590, 100, 50, 25,Default,$GUI_WS_EX_PARENTDRAG)
    $bSerieAdd = __GUICtrlCreateLabel("Hinzufügen" , 660, 100, 100, 25,BitOR($SS_CENTERIMAGE,$SS_CENTER,$WS_BORDER),$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400,True,"_Hover_Func_Button", "_Hover_Func_Button")
    $bSerieRefresh = __GUICtrlCreateLabel("Aktualisieren" , 780, 100, 100, 25,BitOR($SS_CENTERIMAGE,$SS_CENTER,$WS_BORDER),$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400,True,"_Hover_Func_Button", "_Hover_Func_Button")
    $istartname = GUICtrlCreateInput("" , 320, 140, 560, 25,BitOR($WS_BORDER,$ES_AUTOHSCROLL),$GUI_WS_EX_PARENTDRAG)
    $dummySerienBoxE = GUICtrlCreateDummy()

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

    $dummySourceFolgeS = GUICtrlCreateDummy()
    ;$lAreaSourceBox = __GUICtrlCreateLabel("" , 310, 185, 580, 200,$SS_BLACKFRAME,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF)
    $lAreaSourceTitle = __GUICtrlCreateLabel("Sourceauswahl" , 320, 195, 150, 30,Default,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",16,400)
    $bSourceRefresh = __GUICtrlCreateLabel("Aktualisieren" , 780, 195, 100, 25,BitOR($SS_CENTERIMAGE,$SS_CENTER,$WS_BORDER),$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400,True,"_Hover_Func_Button", "_Hover_Func_Button")
    $lSourceVideo = __GUICtrlCreateLabel("Video" , 320, 245, 60, 25,Default,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400)
    $cSourceVideo = GUICtrlCreateCombo("" , 410, 245, 430, 25,Default,$GUI_WS_EX_PARENTDRAG)
    $bSourceVideoSelect = __GUICtrlCreateLabel("..." , 850, 245, 30, 25,BitOR($SS_CENTERIMAGE,$SS_CENTER,$WS_BORDER),$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400,True,"_Hover_Func_Button", "_Hover_Func_Button")
    $lSourceAudioGer = __GUICtrlCreateLabel("Audio Ger" , 320, 280, 80, 25,Default,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400)
    $cSourceAudioGer = GUICtrlCreateCombo("" , 410, 280, 430, 25,Default,$GUI_WS_EX_PARENTDRAG)
    $bSourceAudioGerSelect = __GUICtrlCreateLabel("..." , 850, 280, 30, 25,BitOR($SS_CENTERIMAGE,$SS_CENTER,$WS_BORDER),$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400,True,"_Hover_Func_Button", "_Hover_Func_Button")
    $lSourceAudioEng = __GUICtrlCreateLabel("Audio Eng" , 320, 315, 80, 25,Default,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400)
    $cSourceAudioEng = GUICtrlCreateCombo("" , 410, 315, 430, 25,Default,$GUI_WS_EX_PARENTDRAG)
    $bSourceAudioEngSelect = __GUICtrlCreateLabel("..." , 850, 315, 30, 25,BitOR($SS_CENTERIMAGE,$SS_CENTER,$WS_BORDER),$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400,True,"_Hover_Func_Button", "_Hover_Func_Button")
    $lSourceSub = __GUICtrlCreateLabel("Untertitel" , 320, 350, 80, 25,Default,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400)
    $cSourceSub = GUICtrlCreateCombo("" , 410, 350, 430, 25,Default,$GUI_WS_EX_PARENTDRAG)
    $bSourceSubSelect = __GUICtrlCreateLabel("..." , 850, 350, 30, 25,BitOR($SS_CENTERIMAGE,$SS_CENTER,$WS_BORDER),$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400,True,"_Hover_Func_Button", "_Hover_Func_Button")
    $dummySourceFolgeE = GUICtrlCreateDummy()

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

    $dummytestS = GUICtrlCreateDummy()
    ;$lAreatestBox = __GUICtrlCreateLabel("" , 310, 395, 580, 75,$SS_BLACKFRAME,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF)
    $lAreatestTitle = __GUICtrlCreateLabel("Testauswahl" , 320, 405, 150, 30,Default,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",16,400)
    $dummytestE = GUICtrlCreateDummy()

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

    $dummyOptionenS = GUICtrlCreateDummy()
    ;$lAreaOptionenBox = __GUICtrlCreateLabel("" , 310, 480, 290, 110,$SS_BLACKFRAME,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF)
    $lAreaOptionenTitle = __GUICtrlCreateLabel("Optionen" , 320, 490, 150, 30,Default,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",16,400)
    $chkRepack = GUICtrlCreateCheckbox("Info" , 320, 530, 80, 20,Default,$GUI_WS_EX_PARENTDRAG)
    $chkRelNotes = GUICtrlCreateCheckbox("Notes" , 420, 530, 90, 20,Default,$GUI_WS_EX_PARENTDRAG)
    $chkSubs = GUICtrlCreateCheckbox("Untertitel" , 320, 550, 80, 20,Default,$GUI_WS_EX_PARENTDRAG)
    $chkScreens = GUICtrlCreateCheckbox("Screenshots" , 420, 550, 90, 20,Default,$GUI_WS_EX_PARENTDRAG)
    $dummyOptionenE = GUICtrlCreateDummy()

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

    $bstart = __GUICtrlCreateLabel("Starten" , 610, 480, 270, 100,BitOR($SS_CENTERIMAGE,$SS_CENTER,$WS_BORDER),$GUI_WS_EX_PARENTDRAG, 0x0000CC,0xFFFFFF,"Calibri",12,400,True,"_Hover_Func_Button", "_Hover_Func_Button")
    $bBack = __GUICtrlCreateLabel("Zurück" , 780, 555, 100, 25,BitOR($SS_CENTERIMAGE,$SS_CENTER,$WS_BORDER),$GUI_WS_EX_PARENTDRAG, 0x0000CC,0xFFFFFF,"Calibri",12,400,True,"_Hover_Func_Button", "_Hover_Func_Button")

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

    GUICtrlSetState($bBack,$GUI_HIDE)
    ;GUICtrlSetState($lAreaSerieBox,$GUI_DISABLE)
    ;GUICtrlSetState($lAreaSourceBox,$GUI_DISABLE)
    ;GUICtrlSetState($lAreatestBox,$GUI_DISABLE)
    ;GUICtrlSetState($lAreaOptionenBox,$GUI_DISABLE)

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

    ; Arbeitsbereich rechts Staffel Modus

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

    $dummySourceStaffelS = GUICtrlCreateDummy()
    ;$lAreaOrdnerBox = __GUICtrlCreateLabel("" , 310, 185, 580, 200,$SS_BLACKFRAME,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF)
    $lAreaOrdnerTitle = __GUICtrlCreateLabel("Sourceauswahl" , 320, 195, 150, 30,Default,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",16,400)
    $lSourceOrdner = __GUICtrlCreateLabel("Ordner" , 320, 245, 60, 25,Default,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400)
    $iSourceOrdner = GUICtrlCreateInput("" , 410, 245, 430, 25,BitOR($WS_BORDER,$ES_AUTOHSCROLL),$GUI_WS_EX_PARENTDRAG)
    $bSourceOrdnerSelect = __GUICtrlCreateLabel("..." , 850, 245, 30, 25,BitOR($SS_CENTERIMAGE,$SS_CENTER,$WS_BORDER),$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400,True,"_Hover_Func_Button", "_Hover_Func_Button")
    $lSourceTorrent = __GUICtrlCreateLabel("Test1" , 320, 280, 80, 25,Default,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400)
    $iSourceTorrent = GUICtrlCreateInput("" , 410, 280, 430, 25,BitOR($WS_BORDER,$ES_AUTOHSCROLL),$GUI_WS_EX_PARENTDRAG)
    $bSourceTorrentSelect = __GUICtrlCreateLabel("..." , 850, 280, 30, 25,BitOR($SS_CENTERIMAGE,$SS_CENTER,$WS_BORDER),$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400,True,"_Hover_Func_Button", "_Hover_Func_Button")
    $lSourcetest = __GUICtrlCreateLabel("Test2" , 320, 315, 80, 25,Default,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400)
    $iSourcetest = GUICtrlCreateInput("" , 410, 315, 430, 25,BitOR($WS_BORDER,$ES_AUTOHSCROLL),$GUI_WS_EX_PARENTDRAG)
    $bSourcetestSelect = __GUICtrlCreateLabel("..." , 850, 315, 30, 25,BitOR($SS_CENTERIMAGE,$SS_CENTER,$WS_BORDER),$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400,True,"_Hover_Func_Button", "_Hover_Func_Button")
    $lSourceOton = __GUICtrlCreateLabel("Quelle" , 320, 350, 80, 25,Default,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400)
    $iSourceOton = GUICtrlCreateInput("" , 410, 350, 430, 25,BitOR($WS_BORDER,$ES_AUTOHSCROLL),$GUI_WS_EX_PARENTDRAG)
    $dummySourceStaffelE = GUICtrlCreateDummy()

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

    ;GUICtrlSetState($lAreaOrdnerBox,$GUI_DISABLE)
    For $i = $dummySourceStaffelS to $dummySourceStaffelE
    GUICtrlSetState($i,$GUI_HIDE)
    Next

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

    ; Arbeitsbereich rechts Kalender Modus

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

    $dummySourceKalenderS = GUICtrlCreateDummy()
    $kKalender = GUICtrlCreateDate("Datum",320,195)
    $dummySourceKalenderE = GUICtrlCreateDummy()

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

    For $i = $dummySourceKalenderS to $dummySourceKalenderE
    GUICtrlSetState($i,$GUI_HIDE)
    Next

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

    ; Arbeitsbereich rechts Globale Einstellungen

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

    $dummyGlobEinstS = GUICtrlCreateDummy()
    ;$lAreaDeacttestBox = __GUICtrlCreateLabel("" , 310, 50, 580, 120,$SS_BLACKFRAME,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF)
    $lAreaDeacttestTitle = __GUICtrlCreateLabel("Testauswahl deaktivieren" , 320, 60, 250, 30,Default,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",16,400)

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

    ;$lAreaDeactFuncBox = __GUICtrlCreateLabel("" , 310, 180, 580, 120,$SS_BLACKFRAME,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF)
    $lAreaDeactFuncTitle = __GUICtrlCreateLabel("Funktionen deaktivieren" , 320, 190, 250, 30,Default,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",16,400)
    ;$chkDeactFuncScreens = GUICtrlCreateCheckbox("Screenshots" , 320, 230, 90, 20,Default,$GUI_WS_EX_PARENTDRAG)
    ;$chkDeactFuncSubs = GUICtrlCreateCheckbox("Untertitel" , 420, 230, 80, 20,Default,$GUI_WS_EX_PARENTDRAG)
    $chkDeactFuncScreens = __GUICtrlCreateLabel("" , 320, 230, 20, 20,BitOR($SS_CENTERIMAGE,$SS_CENTER,$WS_BORDER),$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",14,600,True,"_Hover_Func_CheckBox", "_Hover_Func_CheckBox")
    $lDeactFuncScreens = __GUICtrlCreateLabel("Screenshots" , 350, 230, 90, 20,$SS_CENTERIMAGE,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400)
    $chkDeactFuncSubs = __GUICtrlCreateLabel("" , 460, 230, 20, 20,BitOR($SS_CENTERIMAGE,$SS_CENTER,$WS_BORDER),$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",14,600,True,"_Hover_Func_CheckBox", "_Hover_Func_CheckBox")
    $lDeactFuncSubs = __GUICtrlCreateLabel("Untertitel" , 490, 230, 90, 20,$SS_CENTERIMAGE,$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400)

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

    $bSaveGlobEinst = __GUICtrlCreateLabel("Speichern" , 433, 320, 100, 25,BitOR($SS_CENTERIMAGE,$SS_CENTER,$WS_BORDER),$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400,True,"_Hover_Func_Button", "_Hover_Func_Button")
    $bUndoGlobEinst = __GUICtrlCreateLabel("Rückgängig" , 666, 320, 100, 25,BitOR($SS_CENTERIMAGE,$SS_CENTER,$WS_BORDER),$GUI_WS_EX_PARENTDRAG, 0xFFFFFF,0x000000,"Calibri",12,400,True,"_Hover_Func_Button", "_Hover_Func_Button")

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

    $dummyGlobEinstE = GUICtrlCreateDummy()

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

    ;GUICtrlSetState($lAreaDeacttestBox,$GUI_DISABLE)
    ;GUICtrlSetState($lAreaDeactFuncBox,$GUI_DISABLE)
    For $i = $dummyGlobEinstS to $dummyGlobEinstE
    GUICtrlSetState($i,$GUI_HIDE)
    Next

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

    ;GUICtrlSetState($lAreaSerieBox,$GUI_DISABLE)
    ;__GUICtrlCreateLabel($text=Default,$left=Default,$top=Default,$width=Default,$height=Default,$style=Default,$exstyle=Default,$bkcolor=-1,$fontcolor=-1,$fontname=-1,$fontsize=Default,$fontweight=Default,$hover=False,$hoverF=-1,$hoverLeaveF=-1)

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

    GUICtrlSetData($cSerie,"TestSerie S01|TestSerie S02|Test","Test")

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

    showLogin(True)

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

    GUISetState(@SW_SHOW)
    global $boxShow = 800
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $bBeenden, $bLoginBeenden
    Exit
    Case $bMinimieren
    showLogin(True)
    ;GUISetState(@SW_MINIMIZE,$gMain)
    Case $bLogin
    showLogin(False)
    Case $bstart
    If $boxShow = 800 Then
    $boxShow = -800
    Else
    $boxShow = 800
    EndIf
    slide_Box($dummyMenuBarS+1,$dummyMenuBarE-1,$boxShow)
    slide_Box($dummySerienBoxS+1,$dummySerienBoxE-1,-1*$boxShow)
    slide_Box($dummySourceFolgeS+1,$dummySourceFolgeE-1,-1*$boxShow)
    slide_Box($dummySourceStaffelS+1,$dummySourceStaffelE-1,-1*$boxShow)
    slide_Box($bstart,$bstart,-1*$boxShow)
    slide_Box($dummytestS+1,$dummytestE-1,-1*$boxShow)
    slide_Box($dummyOptionenS+1,$dummyOptionenE-1,-1*$boxShow)
    GUICtrlSetState($bBack,$GUI_SHOW)
    Case $bSerieAdd
    If $boxShow = 800 Then
    $boxShow = -800
    Else
    $boxShow = 800
    EndIf
    slide_Box($dummyMenuBarS+1,$dummyMenuBarE-1,$boxShow)
    slide_Box($dummySerienBoxS+1,$dummySerienBoxE-1,-1*$boxShow)
    slide_Box($dummySourceFolgeS+1,$dummySourceFolgeE-1,-1*$boxShow)
    slide_Box($dummySourceStaffelS+1,$dummySourceStaffelE-1,-1*$boxShow)
    slide_Box($bstart,$bstart,-1*$boxShow)
    slide_Box($dummytestS+1,$dummytestE-1,-1*$boxShow)
    slide_Box($dummyOptionenS+1,$dummyOptionenE-1,-1*$boxShow)
    GUICtrlSetState($bBack,$GUI_SHOW)
    Case $bBack
    GUICtrlSetState($bBack,$GUI_HIDE)
    If $boxShow = 800 Then
    $boxShow = -800
    Else
    $boxShow = 800
    EndIf
    slide_Box($dummyMenuBarS+1,$dummyMenuBarE-1,$boxShow)
    slide_Box($dummySerienBoxS+1,$dummySerienBoxE-1,-1*$boxShow)
    slide_Box($dummySourceFolgeS+1,$dummySourceFolgeE-1,-1*$boxShow)
    slide_Box($dummySourceStaffelS+1,$dummySourceStaffelE-1,-1*$boxShow)
    slide_Box($bstart,$bstart,-1*$boxShow)
    slide_Box($dummytestS+1,$dummytestE-1,-1*$boxShow)
    slide_Box($dummyOptionenS+1,$dummyOptionenE-1,-1*$boxShow)
    Case $chkDeactFuncSubs, $chkDeactFuncScreens
    If GUICtrlRead($nMsg)="" Then
    GUICtrlSetData($nMsg,"X")
    Else
    GUICtrlSetData($nMsg,"")
    EndIf
    EndSwitch
    WEnd

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

    Func __GUICtrlCreateLabel($text=Default,$left=Default,$top=Default,$width=Default,$height=Default,$style=Default,$exstyle=Default,$bkcolor=-1,$fontcolor=-1,$fontname=-1,$fontsize=Default,$fontweight=Default,$hover=False,$hoverF=-1,$hoverLeaveF=-1)
    Local $iCtrl = GUICtrlCreateLabel($text,$left,$top,$width,$height,$style,$exstyle)
    If $bkcolor <> -1 Then GUICtrlSetBkColor($iCtrl,$bkcolor)
    If $fontcolor <> -1 Then GUICtrlSetColor($iCtrl,$fontcolor)
    If $fontname <> -1 Then GUICtrlSetFont($iCtrl,$fontsize,$fontweight,0,$fontname)
    If $hover = True Then
    If $hoverF <> -1 And $hoverLeaveF <> -1 Then
    _GUICtrl_OnHoverRegister($iCtrl, $hoverF, $hoverLeaveF)
    Else
    If $hoverF = -1 Then
    _GUICtrl_OnHoverRegister($iCtrl, "", $hoverLeaveF)
    Else
    _GUICtrl_OnHoverRegister($iCtrl, $hoverF, $hoverLeaveF)
    EndIf
    EndIf
    EndIf
    Return $iCtrl
    EndFunc

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

    Func _Hover_Func_Menu($iCtrlID, $iParam)
    Local $size = 18
    If $iParam = 2 Then $size = 16
    GUICtrlSetFont($iCtrlID,$size,400,0,"Calibri")

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

    If $iParam <> 2 Then
    Switch $iCtrlID
    Case $lMenuFolge
    show_Box($dummySourceStaffelS, $dummySourceStaffelE, False)
    show_Box($dummyGlobEinstS, $dummyGlobEinstE, False)
    show_Box($dummySourceKalenderS, $dummySourceKalenderE, False)
    show_Box($dummySerienBoxS, $dummySerienBoxE)
    show_Box($dummySourceFolgeS, $dummySourceFolgeE)
    show_Box($dummytestS, $dummytestE)
    show_Box($dummyOptionenS, $dummyOptionenE)
    GUICtrlSetState($cFolge,$GUI_SHOW)
    GUICtrlSetState($bstart,$GUI_SHOW)
    Case $lMenuStaffel
    show_Box($dummySourceFolgeS, $dummySourceFolgeE,False)
    show_Box($dummyGlobEinstS, $dummyGlobEinstE, False)
    show_Box($dummySourceKalenderS, $dummySourceKalenderE, False)
    show_Box($dummySerienBoxS, $dummySerienBoxE)
    show_Box($dummySourceStaffelS, $dummySourceStaffelE)
    show_Box($dummytestS, $dummytestE)
    show_Box($dummyOptionenS, $dummyOptionenE)
    GUICtrlSetState($cFolge,$GUI_HIDE)
    GUICtrlSetState($bstart,$GUI_SHOW)
    Case $lMenuKalender
    show_Box($dummySourceStaffelS, $dummySourceStaffelE, False)
    show_Box($dummyGlobEinstS, $dummyGlobEinstE, False)
    show_Box($dummySourceFolgeS, $dummySourceFolgeE,False)
    show_Box($dummySerienBoxS, $dummySerienBoxE)
    show_Box($dummytestS, $dummytestE)
    show_Box($dummyOptionenS, $dummyOptionenE)
    show_Box($dummySourceKalenderS, $dummySourceKalenderE)
    GUICtrlSetState($bstart,$GUI_HIDE)
    GUICtrlSetState($cFolge,$GUI_SHOW)
    Case $lMenuStatistik, $lMenuSDB
    show_Box($dummySourceStaffelS, $dummySourceStaffelE, False)
    show_Box($dummyGlobEinstS, $dummyGlobEinstE, False)
    show_Box($dummySerienBoxS, $dummySerienBoxE,False)
    show_Box($dummySourceFolgeS, $dummySourceFolgeE,False)
    show_Box($dummytestS, $dummytestE,False)
    show_Box($dummyOptionenS, $dummyOptionenE,False)
    show_Box($dummySourceKalenderS, $dummySourceKalenderE, False)
    GUICtrlSetState($cFolge,$GUI_HIDE)
    GUICtrlSetState($bstart,$GUI_HIDE)
    Case $lMenuEinstellungen
    show_Box($dummySourceStaffelS, $dummySourceStaffelE, False)
    show_Box($dummySerienBoxS, $dummySerienBoxE,False)
    show_Box($dummySourceFolgeS, $dummySourceFolgeE,False)
    show_Box($dummytestS, $dummytestE,False)
    show_Box($dummyOptionenS, $dummyOptionenE,False)
    show_Box($dummySourceKalenderS, $dummySourceKalenderE, False)
    GUICtrlSetState($bstart,$GUI_HIDE)
    show_Box($dummyGlobEinstS, $dummyGlobEinstE)
    EndSwitch
    EndIf
    EndFunc

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

    Func _Hover_Func_Button($iCtrlID, $iParam)
    Local $size, $bkcolor, $fontcolor
    If $iParam = 2 Then
    $size = 12
    if $iCtrlID = $bstart Then $size = 24
    If $iCtrlID = $bMinimieren Or $iCtrlID = $bBeenden Then $size = 16
    $bkcolor = 0xFFFFFF ; weiß
    ;if $iCtrlID = $bstart Then $bkcolor = 0x0000CC
    $fontcolor = 0x000000 ; schwarz
    Else
    $size = 14
    if $iCtrlID = $bstart Then $size = 32
    If $iCtrlID = $bMinimieren Or $iCtrlID = $bBeenden Then $size = 24
    $bkcolor = 0x0000CC ; blau
    ;If $iCtrlID = $bMinimieren Or $iCtrlID = $bBeenden Then $bkcolor = 0x999999
    $fontcolor = 0xFFFFFF ; weiß
    EndIf

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

    GUICtrlSetFont($iCtrlID,$size,400,0,"Calibri")
    if $iCtrlID = $bstart Then Return
    GUICtrlSetBkColor($iCtrlID,$bkcolor)
    GUICtrlSetColor($iCtrlID,$fontcolor)
    EndFunc

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

    Func _Hover_Func_CheckBox($iCtrlID, $iParam)
    Local $bkcolor, $fontcolor

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

    If $iParam = 2 Then
    $bkcolor = 0xFFFFFF ; weiß
    $fontcolor = 0x000000 ; schwarz
    Else
    $bkcolor = 0x0000CC ; blau
    $fontcolor = 0xFFFFFF ; weiß
    EndIf

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

    GUICtrlSetBkColor($iCtrlID,$bkcolor)
    GUICtrlSetColor($iCtrlID,$fontcolor)

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

    If GUICtrlRead($iCtrlID)="" Then
    GUICtrlSetData($iCtrlID,"X")
    Else
    GUICtrlSetData($iCtrlID,"")
    EndIf
    EndFunc

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

    Func show_Box($iStart, $iEnd, $visible = True)
    Local $show = $GUI_SHOW
    If $visible = False Then $show = $GUI_HIDE
    For $i = $iStart to $iEnd
    if BitAND(GUICtrlGetState($i),$show)=$show Then
    ; consolewrite($i & " --> skip loop" & @CRLF)
    ContinueLoop
    ;Else
    ; consolewrite($i & " --> set new state" & @CRLF)
    EndIf
    GUICtrlSetState($i,$show)
    Next
    EndFunc

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

    Func slide_Box($iStart, $iEnd, $iX=0, $iY=0, $speed=10)
    if $iX <> 0 Then
    For $i=0 to $iX Step $iX/$speed
    For $j = $iStart to $iEnd
    $aPos=ControlGetPos($gMain,"",$j)
    GUICtrlSetPos($j,$aPos[0]+($iX/$speed),$aPos[1])
    Next
    Sleep(10)
    Next
    EndIf
    If $iY <> 0 Then
    For $i=0 to $iY Step $iY/$speed
    For $j = $iStart to $iEnd
    $aPos=ControlGetPos($gMain,"",$j)
    GUICtrlSetPos($j,$aPos[0],$aPos[1]+($iY/$speed))
    Next
    Sleep(10)
    Next
    EndIf
    EndFunc

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

    Func showLogin($show)
    If $show Then
    show_Box($dummyWorkAreaS, $dummyWorkAreaE, False)
    show_Box($dummyMenuBarS, $dummyMenuBarE, False)
    show_Box($dummySourceStaffelS, $dummySourceStaffelE, False)
    show_Box($dummyGlobEinstS, $dummyGlobEinstE, False)
    show_Box($dummySerienBoxS, $dummySerienBoxE,False)
    show_Box($dummySourceFolgeS, $dummySourceFolgeE,False)
    show_Box($dummytestS, $dummytestE,False)
    show_Box($dummyOptionenS, $dummyOptionenE,False)
    show_Box($dummySourceKalenderS, $dummySourceKalenderE, False)
    GUICtrlSetState($bstart,$GUI_HIDE)
    ControlMove($gMain,"",$lAreaLeft,0,0)
    ControlMove($gMain,"",$lTitle,320,20)
    GUICtrlSetState($lAreaLeft,$GUI_SHOW)
    GUICtrlSetState($lTitle,$GUI_SHOW)
    show_Box($dummyLoginS,$dummyLoginE)
    Else
    show_Box($dummyLoginS,$dummyLoginE,False)
    show_Box($dummySourceKalenderS, $dummySourceKalenderE, False)
    show_Box($dummySourceStaffelS, $dummySourceStaffelE, False)
    show_Box($dummyGlobEinstS, $dummyGlobEinstE, False)
    ControlMove($gMain,"",$lAreaLeft,-600,0)
    ControlMove($gMain,"",$lTitle,20,20)
    show_Box($dummyWorkAreaS, $dummyWorkAreaE)
    show_Box($dummyMenuBarS, $dummyMenuBarE)
    show_Box($dummySerienBoxS, $dummySerienBoxE)
    show_Box($dummySourceFolgeS, $dummySourceFolgeE)
    show_Box($dummytestS, $dummytestE)
    show_Box($dummyOptionenS, $dummyOptionenE)
    GUICtrlSetState($bstart,$GUI_SHOW)
    EndIf
    EndFunc

    [/autoit]

    Benötigtes Include siehe Anhang, die Login Maske am Anfang kann einfach ohne Eingaben bestätigt werden. Ein Klick auf den "Starten Button" führt zu einem netten slide Effekt. Im Menüpunkt "Globale Einstellungen" sieht man außerdem noch etwas andere Checkboxen als üblich.