Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   RxRichEdit zoomen (https://www.delphipraxis.net/172906-rxrichedit-zoomen.html)

runningsoft 28. Jan 2013 13:51

Delphi-Version: 2010

RxRichEdit zoomen
 
Hallo zusammen,

ich befülle ein RxRichEdit, dass ein A4-Blatt abbildet, zu Testzwecken komplett mit einer vorgegebenen Anzahl Zeilen (in meinem Beispiel bei Arial, 11 Punkt sind es exakt 59). Nun zoome ich das RichEdit am Bildschirm mit folgender Prozedur:

Delphi-Quellcode:
procedure TForm11.SetZoom(var Zoom: double);
var Numerator, Denominator : integer;
begin
if Zoom = 1 then
   begin
   Numerator := 0;
   Denominator := 0;
   end
else
   begin
   Numerator := round(Zoom * 100);
   Denominator := 100;
   end;
//RichEdit gezoomt zeichnen
with RxRichEdit1 do
   begin
   Width := MulDiv(trunc(PageWidth * 10 * Zoom),fScreenLogPixels,254);
   Height := MulDiv(trunc(PageHeight * 10 * Zoom),fScreenLogPixels,254);
   end;
//Inhalt des RichEdits zoomen
SendMessage(RXRichEdit1.Handle, EM_SETZOOM,Numerator,Denominator);
end;
Dabei stelle ich fest, dass offenbar die dargestellte Größe der Schrift nicht "weich" gezoomt wird (so wie in Word), so dass immer die gleiche Anzahl an Zeilen auf meinem RichEdit sichtbar sind. Mal sind es 53/54 Zeilen, dann wieder 59 usw. Besonders schlimm wird es bei einem Zoomfaktor von 50 bzw 45%. Hier wir die Schrift am Bildschirm gar nicht gezoomt, es ist die gleiche Anzahl von Zeilen am Bildschirm sichtbar, mit mehr oder weniger großem unteren Seitenrand.

Die Größe des RichEdits ändert sich korrekt, ebenso die eingestellten Seitenränder, nur die Schriftgröße hakt.

Mach ich einen Fehler bei Aufruf der Message EM_SETZOOM oder muss man am RichEdit was einstellen, damit "sanft" gezoomt wird?

Vielen Dank für Eure Mithilfe.

runningsoft 29. Jan 2013 21:10

AW: RxRichEdit zoomen
 
Hat noch niemand dieses Problem gehabt?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz