Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Grafik / Sound / Multimedia (https://www.delphipraxis.net/21-library-grafik-sound-multimedia/)
-   -   Delphi Ermitteln ob Schrift eine TrueType-Schrift ist (https://www.delphipraxis.net/30347-ermitteln-ob-schrift-eine-truetype-schrift-ist.html)

SirThornberry 23. Sep 2004 18:36


Ermitteln ob Schrift eine TrueType-Schrift ist
 
ich hoff mal ich bin in der richtigen Kategorie. Hab mal wieder was für die Codelib da ich auf der suche nach der Lösung für mein Problem in der DP nicht fündig gewurden bin... Hier der Source
Delphi-Quellcode:
function IsTrueType(DC: HDC): Boolean; overload;
var
  LMetric: TTextMetric;
begin
  GetTextMetrics(DC, LMetric);
  result := LMetric.tmPitchAndFamily and TMPF_TRUETYPE <> 0;
end;

function IsTrueType(AFontname: String): Boolean;
var
  LBmp: TBitmap;
begin
  LBmp := TBitmap.Create;
  LBmp.Canvas.Font.Name := AFontname;
  result := IsTrueType(LBmp.Canvas.Handle);
  LBmp.Free;
end;
ich benutze TBitmap und nicht direct TCanvas da sonst die Meldung kommt das nicht darauf gezeichnet werden.

shmia hat noch eine andere Möglichkeit:
Delphi-Quellcode:
function IsTrueType(DC: HDC): Boolean; overload;
var
  LMetric: TTextMetric;
begin
  GetTextMetrics(DC, LMetric);
  result := LMetric.tmPitchAndFamily and TMPF_TRUETYPE <> 0;
end;

function IsTrueType(const AFontname: String): Boolean; overload;
var
  canvas: TCanvas;
begin
  canvas := TCanvas.Create;
  canvas.Handle := GetDC(GetDesktopWindow); // Desktop
  Canvas.Font.Name := AFontname;
  result := IsTrueType(Canvas.Handle);
  canvas.Free;
end;
[edit=Chakotay1308]SourceCode angefügt. Mfg, Chakotay1308[/edit]
[edit=Matze]Code formatiert. Mfg, Matze[/edit]
[edit=flomei]Wir "räumen auf", daher Titel geändert... Mfg, flomei[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:20 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-2025 by Thomas Breitkreuz