GroupEx.au3 -- Group Control zum Gestalten an allen Ecken und Enden v0.12

  • In einem Post wurde gefragt, wie man bei einer Group den Rahmen färben kann.
    Da man an dem Control nicht mit Ownerdraw herumschrauben kann, habe ich mal zwei Funktionen gebaut zum Erstellen und Ändern einer Group. Die Group ist aus einzelnen Label zusammengesetzt, kann aber verändert werden, ohne jedes Element einzeln ansprechen zu müssen.
    Beim Erstellen der Group wird GUIStartGroup() aufgerufen um die Group-Funktionalität zu gewährleisten.
    Übrigens lassen sich nicht nur Groups erstellen, sondern da die Elemente auch einzeln dargestellt werden können, verschiedene Rahmenstrukturen (s. Bild 2)


    Edit 22.07.2013 v0.2:
    Die folgenden Operationen brauchen keinen Wert für Parameter "$_vValue". Leerstring übergeben.
    - Textlabel kann per Flag $_GROUPTEXT_ITALIC auf Style "Italic" gesetzt werden
    - Mit Flag $_GROUPTEXT_DEFAULT wird der Style wieder aufgehoben
    - BackColor des Textlabels mit Flag $_GROUPTEXT_TRANS von Farbe wieder auf Transparenz setzbar


    Edit 22.07.2013 v0.3:
    ControlMove möglich mit Flag
    - $_GROUPMOVE_ABS (Parameter relativ zum Child) oder
    - $_GROUPMOVE_REL (Parameter relativ zur vorherigen Position)
    Parameter können als Array oder kommagetrennter String übergeben werden. Für Parameter, die nicht verändert werden sollen, "*" übergeben.
    Reihenfolge: x, y, Breite, Höhe
    Es sind nur Parameter in der Reihenfolge von links zu übergeben, soll z.B. nur die y-Position geändert werden reicht aus: "*,y"


    Edit 23.07.2013 v0.5:
    Titelpositionen: $_GROUPTEXT_LEFT (Standard), $_GROUPTEXT_CENTER, $_GROUPTEXT_RIGHT
    - als zusätzlichen Parameter beim Erstellen angeben oder
    - mit _GuiCtrlGroup_Set() ohne Wert aufrufen oder
    - in Kombination mit $_GROUPTEXT_TEXT aufrufen


    Edit 14.09.2013 v0.6:
    - Bug bei Verwendung der Funktion in mehreren GUI gefixed ==> Dadurch zusätzlicher Parameter für GUI bei "_GuiCtrlGroup_Create".
    Das bisherige Bsp. ist aufgrund der Syntaxänderung nicht mehr verwendbar. 2 neue Bsp. im Anhang


    Edit 14.09.2013 v0.7:
    - da war noch ein Bug beim Zeichnen von Controls innerhalb der Group ausserhalb der Main-GUI ==> gefixed


    Edit 01.06.2018 v0.8:

    ACHTUNG - die neue Version hat Änderungen in den Parametern (Art und Anzahl) und ist nicht kompatibel mit Skripten die mit Vorversionen erstellt wurden!

    NEU

    - Funktion: _GuiCtrlGroup_SetState Setzt den Status für die Group (ENABLE/DISABLE/HIDE/SHOW) und optional für Controls innerhalb der Group (als Array übergeben)

    Bei Disable kann die Farbe für Titeltext und Grouphintergrund im Disable-Zustand übergeben werden. Es gibt Standardwerte (Grautöne), die benutzt werden, falls kein Wert übergeben wird (s. Konstanten im Skriptkopf). Die bisherigen Farben werden zurückgegeben und können dann bei Enable wieder verwendet werden.

    - beim Erstellen kann bereits Italic als Schriftstyle gewählt werden (kombinierbar mit Align)

    - Beim Verschieben der Group lassen sich ebenfalls die enthaltenen Controls (als Array übergeben) mit verschieben

    GEÄNDERT

    - Funktion: _GuiCtrlGroup_Create Der Parameter $_iAlign wurde ersetzt durch $_iTitleParam (kombinierbar Ausrichtung und Style)

    - Funktion: _GuiCtrlGroup_Set Das Gui-Handle ist als Parameter nicht mehr erforderlich. Optionaler Parameter $_aCtrlInside zum Verschieben der Controls mit der Group


    Edit 02.06.2018 v0.10:

    - Jetzt werden auch nicht-native Ctrl berücksichtigt beim Verschieben und Status setzen

    - Fehler nach Disable - Enable (nicht anklickbare Control) beseitigt


    Edit 02.06.2018 v0.11:

    - Beim Disable/Enable wird die bisherige Farbe von Text und Groupfläche automatisch gespeichert. Es können Farbwerte optional übergeben werden. Ohne Werte (bzw. mit 'Null') werden die Standardwerte für Disable bzw. die vorherigen Enable Farben verwendet.


    Edit 03.06.2018 v012:

    - Farbmanagement beim Disable/Enable intern optimiert

    - Flackern bei Enable inside - Ctrl beseitigt

    - Integration Systemcolor Abfrage


    DL bisher: 217


  • Und eine weitere Datei in meinem "AutoIt3/Includes" - Ordner!


    Wie immer super, kann ich bestimmt mal brauchen. :D


    MfG

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz


    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • Neu v0.2


    - Style Italic/Default für Titel
    - Transparenz Back Color Titel per Flag setzbar


    Die Styles underlined und strike lassen sich nicht anwenden, da zum Einpassen des Textes Leerzeichen vorangestellt werden, die dann auch von diesen Styles betroffen wären.
    Den Font bold zu setzen ist nicht sinnvoll, da hierbei die Arithmetik des gesamten Gebildes sich verschieben würde. Und ich denke mit Italic + Farbe sind ausreichende Gestaltungsvarianten gegeben.

  • Hallo,
    nett gemacht. Ich hätte das aber auf diese Art gemacht:

  • Danke!!! Du bist der Hammer!


    Edit: Und ja, funkey's Methode ist meiner Meinung nach noch besser, da passt das mit der Breite und Höhe besser, bei BugFix ist es bisschen größer, als es sein soll. (Und die Höhe wird sogar noch größer gemacht als die Breite)

    Da es hier doch einige falsch machen:

    Zitat von einem User dieses Forums

    Die Standard-Standart eines Flamingos ist einbeinig. ;)

    Einmal editiert, zuletzt von Joriktos ()

  • BugFix : Da hast du Recht. Das ist auch sehr sinnvoll und vor allem sehr gute Arbeit. :thumbup:


    @all:
    Ich benutze nun funkey's Methode, da diese einfacher ist und mir reicht. Dazu habe ich sie aber nochmal überarbeitet und das ist dabei herausgekommen:


    Ich habe noch eine Funktion gebastelt um das "Control" wieder zu löschen und ich habe es nun so gebastelt, dass ein Array mit 3 Handles zurück gegeben wird, mit denen man nachträglich noch sämtliche Dinge ändern kann :thumbsup:



    Gruß
    Joriktos

    Dateien

    Da es hier doch einige falsch machen:

    Zitat von einem User dieses Forums

    Die Standard-Standart eines Flamingos ist einbeinig. ;)

    Einmal editiert, zuletzt von Joriktos ()

  • Hi,
    zum Thema habe ich noch eine Lösung im en. Forum gefunden. ;-)



    Edit: Post # 12 - Hinweis von Oscar: Ja, das kann sein ist Posted 14 December 2006 - 03:47 PM :(