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;