Meldetext mit automatischen Zeilenumbruch

  • Hallo,

    ich soll ein Alarmmonitor für meine Freiwillige Feuerwehr aufbauen. Der Meldetext ist dabei immer sehr lang (mehr als 100 Zeichen).

    Jetzt suche ich ein Skript das den Text Bildschirmfüllend und mit automatischen Zeilenumbruch und automatischen anpassen der Textgröße.

    Kennt einer solch ein Skript bzw. einen Lösungsansatz?

    Danke

    • Offizieller Beitrag

    Wenn Du das mit der automatischen Textgröße nicht unbedingt brauchst, dann reicht auch eine einfache Variante:

    AutoIt
    #include <WindowsConstants.au3>
    Global $hGui = GUICreate('Meldung', 640, 480, -1, -1, BitOR($WS_POPUP, $WS_MAXIMIZE))
    GUISetBkColor(0xFF6060)
    $aSize = WinGetClientSize($hGui)
    Global $idText = GUICtrlCreateLabel('Ich soll einen Alarmmonitor für meine Freiwillige Feuerwehr aufbauen. Der Meldetext ist dabei immer sehr lang (mehr als 100 Zeichen). Jetzt suche ich ein Skript das den Text Bildschirmfüllend und mit automatischen Zeilenumbruch und automatischen anpassen der Textgröße. Kennt einer solch ein Skript bzw. einen Lösungsansatz?', 20, 20, $aSize[0] -40, $aSize[1] - 40)
    GUICtrlSetFont(-1, 76, 400, 0, 'Tahoma')
    GUICtrlSetBkColor(-1, 0xEEEEEE)
    GUISetState(@SW_SHOW)
    Do
    Until GUIGetMsg() = -3
  • Wenn es nur darum geht eine Zeilenlänge nicht zu überschreiten anstatt einen typografisch korrekten Blocksatz zu erzeugen dann könnte man ganz simpel z. B. auch so rangehen:

    AutoIt
    Global $sText = 'Ich soll einen Alarmmonitor für meine Freiwillige Feuerwehr aufbauen. Der Meldetext ist dabei immer sehr lang (mehr als 100 Zeichen). Jetzt suche ich ein Skript das den Text Bildschirmfüllend und mit automatischen Zeilenumbruch und automatischen anpassen der Textgröße. Kennt einer solch ein Skript bzw. einen Lösungsansatz?'
    
    Global $d_MaxLineLength = 60
    
    $sOutText = StringRegExpReplace($sText, '.{1,' & $d_MaxLineLength & '}\K(\b|\Z)', '\0' & @CRLF)
    
    ConsoleWrite($sOutText)

    Feinheiten (z. B. bei bestimmten Satzzeichen oder sowas) müsste man eventuell noch einarbeiten.

  • Kennt einer solch ein Skript bzw. einen Lösungsansatz?

    Hm, ja, hier habe ich mal vor einiger Zeit was gebastelt... ist aber noch Pre-Beta... 8)

    _ReSizeCtrl.au3

    2 Mal editiert, zuletzt von Bitnugger (18. Dezember 2017 um 22:44)

  • Hallo sstuercke !

    Nachdem ich gerade die 'Pre-Beta' von Bitnugger gesehen habe, wollte ich mein Skript gar nicht mehr posten ;) Nebenbei : Cooler Ansatz :thumbup:

    Aber was soll's, schaden tut es ja auch keinem. Es ist eine Mischung aus den Beiträgen #3 und #4.

    Bei der Version von Oscar ist die Schriftgröße fest eingestellt. Ich habe sie über ein simples Näherungsverfahren berechnet. Du kannst ja mal die beiden Textblöcke wechselseitig ein- bzw. auskommentieren.

    Am Ende wirst und solltest Du natürlich das Skript von Bitnugger verwenden.

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."