Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Canvas.Text ausgabe unsauber in D10.2 im Vergleich zu D7 (https://www.delphipraxis.net/195435-canvas-text-ausgabe-unsauber-d10-2-im-vergleich-zu-d7.html)

WolfgangScherzer 28. Feb 2018 11:01

Canvas.Text ausgabe unsauber in D10.2 im Vergleich zu D7
 
Liste der Anhänge anzeigen (Anzahl: 1)
Grüßt Euch miteinander!

Vor kurzem bin ich von Delphi 7 auf Delphi 10.2 Tokyo umgestiegen.
Die Übertragung von einem Programm, an welchem ich seit etwa 3 Monaten arbeite hat unproblematisch geklappt. Bis auf eine unschöne Sache: bei der Ausgabe von Text auf ein TImage, dessen Eigenschaft auf Transparent gesetzt wurde um ein darunterliegendes TImage zu "beschriften" tritt bei Delphi 10.7 ein "Zuckerrand" auf. Das angehängte Bild zeigt die Ausgabe des gleichen Programms unter D7 und D10.2. Hat jemand eine ähnliche Erfahrung gemacht und weiß evtl. einen Workaround?

Meine bisherige Recherche in diesem Forum und bei Google und hat mir leider bisher keine Ergebnisse geliefert. Ich hoffe, dass ich das Thema in der richtigen Rubrik platziert habe.

Danke im Voraus
Wolfgang

Der schöne Günther 28. Feb 2018 11:24

AW: Canvas.Text ausgabe unsauber in D10.2 im Vergleich zu D7
 
Das scheinen auch zwei völlig unterschiedliche Schriftarten zu sein, oder? Delphi 7 kenne ich nicht, aber
Delphi-Quellcode:
Image1.Canvas.Font
, insbesondere Eigenschaften wie
Delphi-Quellcode:
Quality
würde ich mal genauer unter die Lupe nehmen und vergleichen. Vielleicht waren zu D7-Zeiten noch andere Standards üblich?

himitsu 28. Feb 2018 11:29

AW: Canvas.Text ausgabe unsauber in D10.2 im Vergleich zu D7
 
Es wurden in der Zwischenzeit die Standard-Fonts im Delphi geändert. (wenn ich mich recht erinnere ... Arial > Tahoma oder so)

Wenn so klein aber lesbar, dann vielleicht auch einen ganz anderen Font nutzen?
z.B. Small Font


Eventuell nutzt das neue Delphi andere Einstellungen bei den Fonts. (in Canvas und Co.)

Mußt mal schauen, ob/wie man das nachträglich ändern kann.
Entweder sowas wie das genannte Quality, oder direkt über die WinAPI mit Canvas.Handle (HDC) oder Canvas.Font.Handle (HFONT).
https://msdn.microsoft.com/de-de/lib.../dd183433.aspx
https://msdn.microsoft.com/de-de/lib.../dd183499.aspx (CreateFont)

vielleicht ist auch da noch bissl was zu finden
https://www.codeproject.com/Articles...ng-Windows-GDI
https://www.codeproject.com/Articles...asing-with-GDI

ChrisE 28. Feb 2018 11:35

AW: Canvas.Text ausgabe unsauber in D10.2 im Vergleich zu D7
 
Für mich sieht es aus, als ob du dem Anti-Alias der Schriftart zum Opfer fällst. Dein Image das du mit Schrift versiehst hat "real" den Hintergrund weiß. Die Schrift - die du drauf zeichnest - möchte "weniger Pixelig" erscheinen und färbt Randpixel zusätzlich etwas ein, damit die Schrift schärfer wirkt (mir fehlt gerade der Fachbegriff dafür). Das kann dann aber das Image nicht mehr Transparent schalten, dass es ja nicht mehr rein-weiß ist.

Lösungsmöglichkeiten:
1. Dieses Antialiasing der Schrift abschalten - das könnte dir weiter helfen (http://www.delphipraxis.net/66610-cl...verwenden.html)
2. Alles auf ein Image / Paintbox / Canvas zeichnen - nacheinander
-> Bild
-> Linien / Kreise
->
Delphi-Quellcode:
Brush.Style := bsClear;
TextOut(....);
Ich hoffe dich bringt das weiter.

Gruß, Chris

WolfgangScherzer 2. Mär 2018 10:19

AW: Canvas.Text ausgabe unsauber in D10.2 im Vergleich zu D7
 
Hallo miteinander,

danke für Eure Antworten und Eure Sachlichkeit (in manchen Foren ist der Ton unangenehm rau).
Die meisten Eurer Vermutungen und Anregungen hatte ich schon geprüft. Leider hatten sie nicht weitergeholfen. Ich hoffe am Wochenende Zeit zu finden, Eure Vorschläge systematisch durchzugehen, gebe anschließend feedback.

Mit freundlichen Grüßen
Wolfgang

haentschman 2. Mär 2018 10:30

AW: Canvas.Text ausgabe unsauber in D10.2 im Vergleich zu D7
 
Moin...:P
Zitat:

danke für Eure Antworten und Eure Sachlichkeit
..dafür sind wir bekannt. :zwinker:

WolfgangScherzer 2. Mär 2018 18:28

AW: Canvas.Text ausgabe unsauber in D10.2 im Vergleich zu D7
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1394807)
... aber
Delphi-Quellcode:
Image1.Canvas.Font
, insbesondere Eigenschaften wie
Delphi-Quellcode:
Quality
würde ich mal genauer unter die Lupe nehmen ...

Danke, habe Quality durchprobiert, diese hat auf Labels einen Effekt ... scheint sehr nützlich zu sein. Leider habe ich keine wesentliche Verbesserung auf dem Canvas-Text erkennen können. Die Behandlung von Text auf transparentem Canvas, scheint sich seit D7 verändert zu haben, denn bei gleicher Schriftart und -größe ist das Erscheinungsbild unterschiedlich. Wahrscheinlich, werde ich als workaround Labels zur Laufzeit erzeugen.

Grüße
Wolfgang


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:46 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