GuiControlBusy - Splashtext einmal anders (noch mit Bug?)

    • Offizieller Beitrag

    Am Anfang wollte ich eigentlich nur das Splashtext-Ctrl aufhübschen. Aber dann störte mich z.B., dass es nur in einer Instanz laufen kann. Es ist aber ganz nützlich die Möglichkeit zu haben, Werte aus verschachtelten Schleifen unabhängig parallel anzuzeigen.
    Und so bastelte ich dann ein neues Control, GuiControlBusy. Mit den folgenden Eigenschaften:
    - mehrere Control gleichzeitig
    - das Control besteht bis zum Beenden per Skript oder Ablauf des Timeouts (wenn gesetzt) oder Ablauf des Sicherheitstimeouts
    - Titelleiste (Titel und optional Countdown oder Zeitanzeige), Countdownanzeige erfordert gesetzten Timeout (in Sekunden, Anzeige wird formatiert "1 d / 23:59:59 h")
    - Trennlinie in derselben Farbe wie Titelleiste
    - Text in eigener Farbe. Wenn Timeout gesetzt, kann Countdown im Text mit Platzhalter %C% angezeigt werden. Zeilenumbruch kann mit \n im Text dargestellt werden
    - Font und Größe sind fix
    - Größe des Controls passt sich dem Titel/Text an
    - Hintergrund wird mit Farbverlauf von oben nach unten (Standard) oder von links nach rechts gefärbt
    - alle Ctrl-Parameter können zur Laufzeit verändert werden (Titel, Text, Timeout, Countdown, Farben, Position, OnTop)
    - Wenn das Ctrl geschlossen wird, wird WM_NOTIFY mit eigenem iCode gesendet (nicht wenn alle Ctrl geschlossen werden z.B. bei Skriptende)

    Eigentlich bin ich mit dem Ergebnis recht zufrieden. Aber ein Wermutstropfen:
    Ich kann es nich gewollt reproduzieren, aber ab und an werden offene Ctrl plötzlich nicht weiter gezeichnet und sind nur noch weiße Rechtecke.
    Da es nur sporadisch auftritt, habe ich bisher keine echte Möglichkeit gefunden nach der Ursache zu suchen. Vielleicht findet ihr beim Probieren des Übels Wurzel.
    Bis dahin gilt für dieses Ctrl leider nur: bedingt tauglich :/ - aber vorenthalten will ich es euch trotzdem nicht.

    So sieht es aus:
    control-busy.png

    Hier mal die zur Verfügung stehenden Funktionen:

    Spoiler anzeigen


    Und hier ein Mini-Testskript.

    Spoiler anzeigen