Einzelnen Beitrag anzeigen

leo03

Registriert seit: 18. Jul 2006
5 Beiträge
 
#1

Problem bei RichEdit und Scalierung

  Alt 22. Jul 2014, 15:38
Hallo

Kann man irgendwie verhindern das bei RTFEdits die Font.Size bei Scalieren geändert wird?

Ich verwende ein TDBRichEdit um RTF Inhalte für ein später druckbares Formular einzugeben.
Jetzt habe ich gemerkt dass wenn die Anwendung hochscaliert wird (z.B. über die DPI Einstellung in der Systemsteuerung\Alle Systemsteuerungselemente\Anzeige) auch automatisch die Font.Size des TDBRichEdit mit hochgedreht wurde.
Wenn der Benutzer nun einen Text in das (bisher leere) RTF eingibt und dann druckt, dann passt der Inhalt nicht mehr aufs Papier weil die Schrift viel zu gross ist.
Wenn im TextBlob Feld des DB-Records vor scalierung schon was drin war, spielt es keine Rolle da im RTF Text auch der vorher passende Font.Size drin ist. Jedoch bei leeeren/neuen Records wird der neue Inhalt mit den zu grossen Font-Eintellungen im RTF gespeichert.

Vor allem ältere Leute drehen scheinbar gerne mal ihre DPI hoch um auf ihren hochaufgelösten aber viel zu kleinen Monitoren überhaupt noch etwas lesen zu können.
Das hochscalieren macht mir sonst in der GUI keine Probleme, jedoch das Drucken der zu grossen RTF Inhalte ist lästig.

Was ich versucht habe
- Statt Windows die Scalierung zu überlassen die Delphi Methode ScaleBy() verwenden. Jedoch auch diese verändert die Font.Size der RichEdit Controls.
- Eine Möglichkeit gesucht in der Printing Software den Font zu fixieren. Jedoch da gibt es leider nix. (macht auch eigentlich keinen Sinn da man verschiedenen Fonts/Formatierungen in einem RTF ja auch so zum Drucken möchte).

Gibt es eventuell über das TDBRichEdit Control ein Property um den Default Font generell zu fixieren?
Dann wäre zwar der Text auf dem Monitor auch in kleiner Orginalgröße, damit könnte ich aber leben wenn der Druck dann passt.

Danke für eure Hilfe

-------------------------
um das ganze mal zu veranschaulichen
- ein RichEdit Control aufs Form geben (kann auch das normale ohne Datenanbindung sein)
- Ein Button mit der Funktion RichEdit1.Print('');
- Anwenung starten, Text eigeben, Drucken
- Danach mit der selben Anwendung auf einer DPI von 125 oder 150 (wem die Windows DPI Umstellung mit anschliessendem neuanmelden zu mühsam ist, kann auch vor dem Druck die Delphi Funktion ScaleBy(140,100) aufrufen um nur das Delphi Form um 40% hochzuscalieren. Wenn man die zwei Drucke vergleicht fällt auf, das auf dem 2.Ausdruck der gedruckte Text ebenfalls grösser ist.

Geändert von leo03 (22. Jul 2014 um 15:44 Uhr)
  Mit Zitat antworten Zitat