Einzelnen Beitrag anzeigen

Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Screen.Fonts gibt nicht aktuelle Fontliste

  Alt 30. Mär 2011, 15:31
Geht auch selbst enumerieren? Also einfach auf den Luxus von Screen.Fonts verzichten...

Delphi-Quellcode:
function EnumFontsProc(lplf, lptm : Pointer; dwType: Word; PStringList : Pointer):Integer; stdcall;
var
  s : String;
begin
  s := PLogFont(lplf)^.lfFaceName;
  case dwType of
    DEVICE_FONTTYPE : s := 'DEV: ' + s;
    RASTER_FONTTYPE : s := 'PRN: ' + s;
    TRUETYPE_FONTTYPE : s := 'TTF: ' + s;
  end;
  TStringList(PStringList^).Add(s);
  Result := 1;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  sl : TStringList;
begin
  sl := TStringList.Create;
  try
    EnumFonts(Canvas.Handle, NIL, @EnumFontsProc, @sl);
    Memo1.Text := sl.Text;
  finally
    sl.Free;
  end;
end;
  Mit Zitat antworten Zitat