// Es werden die
verfügbaren Schriftarten in einer Combobox aufgelistet.
// Die auskommentierten Zeilen in der Callback-Funktion zeigen, wie man
// beispielsweise nur TrueType-Schriften oder nur Schriftarten mit fester
// Buchstabenbreite auflisten lassen kann
(entweder oder!).
// Getestet mit D4 unter Win98
function EnumFontsProc(var LogFont: tagLogFontA; var TextMetric: tagTextMetricA;
FontType: Integer; Data: Pointer): Integer; stdcall;
begin
{ if (TextMetric.tmPitchAndFamily and TMPF_TRUETYPE > 0) then }
{ if (TextMetric.tmPitchAndFamily and TMPF_FIXED_PITCH = 0) then }
TStrings(Data).Add(LogFont.lfFaceName);
Result := 1;
end;
procedure schriftarten(wohin: TStrings);
begin
EnumFonts(form1.canvas.handle, nil, @EnumFontsProc, Pointer(wohin));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
schriftarten(combobox1.items);
combobox1.sorted := true;
combobox1.itemindex := combobox1.items.indexof(font.name);
if combobox1.itemindex < 0 then combobox1.itemindex := 0;
end;
|