Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Canvas.Textout Schriftartenglättung deaktivieren (https://www.delphipraxis.net/90677-canvas-textout-schriftartenglaettung-deaktivieren.html)

igel457 21. Apr 2007 18:33


Canvas.Textout Schriftartenglättung deaktivieren
 
Hallo,

wie kann ich verhindern, das ein Text in der Canvas.Textout-Routine mit der Windows-Kantenglättung gezeichnet wird?

Danke,
igel457

Hawkeye219 21. Apr 2007 19:25

Re: Canvas.Textout Schriftartenglättung deaktivieren
 
Hallo Andreas,

hier sind zwei Routinen zum Erfragen und Setzen der font quality:

Delphi-Quellcode:
// mögliche Werte (siehe Windows.pas):
//  DEFAULT_QUALITY = 0
//  DRAFT_QUALITY = 1
//  PROOF_QUALITY = 2
//  NONANTIALIASED_QUALITY = 3
//  ANTIALIASED_QUALITY = 4

function GetFontQuality (aFont: TFont): Byte;
var
  LF : TLogFont;
begin
  GetObject(aFont.Handle, SizeOf(TLogFont), @LF);
  Result := LF.lfQuality;
end;

procedure SetFontQuality (aFont: TFont; aQuality: Byte);
var
  LF : TLogFont;
begin
  GetObject(aFont.Handle, SizeOf(TLogFont), @LF);
  LF.lfQuality := aQuality;
  aFont.Handle := CreateFontIndirect(LF);
end;
Das Rendern über ClearType könntest du so ausschalten:

Delphi-Quellcode:
SetFontQuality (Label1.Font, NONANTIALIASED_QUALITY);
Gruß Hawkeye

igel457 21. Apr 2007 19:52

Re: Canvas.Textout Schriftartenglättung deaktivieren
 
Danke vielmals, funktioniert bestens!


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

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