Splash Font automatisch anpassbar

  • Hallo allerseit,

    ich habe mal eine Frage zu Splashtext Boxen. Ist es möglich die Fontgrösse des angezeigten Textes so anzupassen, dass der Text in jedem Falle hineinpasst. Problem, sofern hier vriable Texte, zB Pfade angezeigt werden, wird immer abgeschnitten.

    AutoIt
    SplashTextOn('', '"Fertig!,"' & $file_ & '"wurde gespeichert!"', 370, 65, -1, -1, $DLG_NOTITLE)
     Sleep(4000)
     SplashOff()

    Leider konnte ich nichts finden, würde mich über einen Tip sehr freuen


    lg


    Chris

  • Schau mal hier:

    Pixel-accurate string width and height
    Here are two functions to provide pixel-accurate height and width dimensions for a given string. The more commonly-used _GDIPlus_GraphicsMeasureString built-in…
    www.autoitscript.com

    oder

    SplashTextOn - Fenster automatisch an Schriftgröße anpassen

    Alternativ optimierst du den SplashText für die maximale Zeichenlänge unter Windows der Dateinamen (256 wenn ich mich jetzt nicht falsch erinnere).

    2 Mal editiert, zuletzt von Moombas (1. August 2022 um 14:50)

  • 256 wenn ich mich jetzt nicht falsch erinnere

    Während das Standard-Dateisystem von Windows, NTFS, Pfade bis zu einer Länge von 65.535 Zeichen unterstützt, hat Windows selbst in der neuesten Version eine maximale Pfadlänge von 255 Zeichen (der Wert der Konstante MAX_PATH).

  • Hallo , und danke erst einmal

    Moombas, das siehht auf den ersten Blick gut aus, handelt es sich um einen statischen text, sobald da aber eine Pfad Varible mit verwurstet wird, ist das Problem wieder da

    AutoIt
                   local $TwipsX = _WinAPI_TwipsPerPixelX()
                   local $FontHight = 10
                   ;Korrekturfaktor damit der Text ins Fenster passt (experimentell ermitteln...)
                   local $CF = 25
                   ; Fenster z.B.: im 16:9 Kinoformat ;)
                   local $SpW= 16 * $CF / $TwipsX * $FontHight
                   local $SpH= 9 * $CF / $TwipsX * $FontHight   
                     SplashTextOn("", "Fertig" & $file_ & "wurde gespeichert! ",$SpW,$SpH, -1, -1, 21, "", $FontHight)     
                   Sleep(4000)
                   SplashOff()
  • Verwendest du denn einen Monitor in 16:9 Format?

    Wenn nicht musst du die 16 und die 9 entsprechend ändern.

    In meinen Tests jedoch scheint das Ding nicht so wirklich zu funktionieren.

  • Bei mir ging es in beiden Varianten nicht aber das andere Beispiel war mit etwas tüfteln zumindest bei mir etwas besser:

    Ggf. solltest du deine Stringlänge auch einfach nach X-Zeichen um ein @CRLF ergänzen.

    Sieht zwar doof aus, ist aber ggf. besser darstellbar je nach Zeichenlänge.

    Einmal editiert, zuletzt von Moombas (2. August 2022 um 13:40)

  • Ja klar, gibbet überhaupt noch 4:3 Monitore ;)

    Ja, hatte ich vor Corona durchaus noch zu Hause im Einsatz :P Aber dann während Corona auf UWQHD (21:9) umgerüstet.

    Und damit kommt schon das was ich meine: Nicht jeder "neue" Monitor hat 16:9. Es kann auch 16:10, 21:9, 32:9 usw. sein.

  • okidoki, wie gesagt ist 21:9

    HJab das ganze Problem jetzt noch mal isoliert und die Variable $file gefakt. So sieht man das Problem deutlicher


    Einmal editiert, zuletzt von casi4712 (2. August 2022 um 14:52)

  • Wenn die Größe des Fensters an den Text angepasst werden soll, sollte man auch die Größe berechnen:

  • Das Beispiel funktioniert gut Oscar Aber auch dort ist spätestens dann ein Problem, wenn wegen der Länge des Textes eine Zweite/dritte Zeile genutzt wird.

    Ich würde empfehlen das über eine eigene GUI zu machen. Mir scheint das SplashOnScreen nicht so intuitiv zu sein für das was du möchtest. casi4712

  • Aber auch dort ist spätestens dann ein Problem, wenn wegen der Länge des Textes eine Zweite/dritte Zeile genutzt wird.

    Nö, ist kein großes Problem:

  • okidoki, danke für die Tips, aber war ja auch nen Denkfehler von mir, wenn der Pfad ziemlich lang is, kann er ja nicht wissen wo er trennen soll, Oscar das werde ich auch mal probieren

    Danke und schönen Abend noch

    chris

  • jetz ist es egal wie lang der Pfad ist, und er passt Text und Fenster an.

    Naja, der max. Pfad kann 255 Zeichen lang sein.

    Ob es dann noch sinnvoll ist, das Fenster derart anzupassen, kannst nur Du wissen.

    Man könnte den Pfad ja auch in der Mitte kürzen (vorn und hinten der Pfad und in der Mitte nur "..." anzeigen), aber das kommt natürlich darauf an, was Du dem Anwender mit der Pfadanzeige sagen willst.

    Ohne weitere Infos deinerseits, lässt sich das nicht sagen.