GUI mit festen Werten je nach Dateiname

  • Moin zum Talk am Mittwochnachmittag. 8o

    Ich frage mich gerade etwas und möchte dazu etwas ausschweifen (nennt man so?).

    Es gibt ja kleine Monitore (Mini's zu 10"), dann die "normalen" üblichen Monitorgrößen und dann kann man ja auch den PC an das TV Gerät anschließen. Na klar gibt es noch mehr verschiedene Größen.

    Nun frage ich mich, ob man je nach Dateiname die GUI und deren Elemente (z.B. Inputfelder) anpassen kann.

    Bsp. mit Beispielwerten:
    Dateiname yxz_mini.au3 / *.exe = 200 * 100
    Dateiname yxz_normal.au3 / *.exe = 400 * 350
    Dateiname yxz_tv.au3 / *.exe = 800 * 600

    Dateiname yxz_gross.au3 / *.exe = 1200 * 900

    Sollte doch möglich sein oder?
    Ich habe schon drei oder vier GUI's, die ich einmal in "normal" und einmal in "gross" erstellt habe.

    Gibt bestimmt schon etwas in diese Richtung, nur ich habe nicht die richtigen Suchbegriffe gefunden. Oder?

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Ich würde mir eine (oder mehrere) Ini-Datei(en) erstellen mit den Größen/Positionen der Gui/Controls. Das Auslesen des Skriptnamens ist ja kein Problem und dann entweder die passende Sektion in der Ini-Datei laden oder die jeweilige Ini-Datei für die Größe.

  • Ich würde anders herangehen:

    - am Programmstart die Desktopgröße abfragen

    - meiner Kategorie zuordnen - im folgenden CAT

    - alle verwendeten Koordinaten und Größen für jede GUI, jedes Ctrl in einem Array hinterlegen

    für Ctrl z.B.: [[Ctrl-ID][CAT][x,y,w,h]]

    Ist am Anfang sicher ordentlich Aufwand, aber beim Erstellen von je 4 Skripten hast du den auch. 8o

  • Ich würde das Fenster ähnlich erstellen, wie ich es in diesem Post RE: mehrere Zeiten wenn abgelaufen für OBS gemacht habe.

    Dann musst du nur $iWidth und $iHeight am Anfang anpassen.

    Wenn du dabei dann @DesktopWidth und @DesktopHeight verwendest kannst du einfach z.B. $iWidth = @DesktopWidth * 0.6 und schon hast du ein Fenster, das 60% der Bildschirmbreite füllt.

    Es wäre dann auch einfach, z.b. die CTRL-Größe mit $iCtrlHeight anzupassen um z.b. auch Schriftgrößen Änderungen zu machen. Alle Control-Width Variablen mit nem Faktor für die Schriftgröße zu multiplizieren wäre auch kein Problem.

    Es macht dann halt sinn, einige Variablen als "Stellschrauben" einzuführen, die Überall verwendet werden.

    Ich erstell all meine Fenster schon länger auf diese Weise, weil dann einfache Anpassungen möglich sind.

  • Vielleicht hilft auch das neue Designer-Tool "GuiBuilderPlus" beschrieben im engl. Forum.

    Interessant klingt: "Apply system DPI aware scaling factor to control positions and sizes"

  • Ich sehe mir alles mal an.

    Bis jetzt bin ich eher für BugFix Lösung.

    Kanashius & water Lösung muss ich mir mal genauer ansehen ob ich das verstehe. Okay, das bei BugFix muss ich auch erst einmal "durcharbeiten".

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl