你如果要取系统的所有字体,就是这样了
function EnumFontsProc(var LogFont: TLogFont; var TextMetric: TTextMetric;
FontType: Integer; Data: Pointer): Integer; stdcall;
begin
TStrings(Data).Add(LogFont.lfFaceName);
Result := 1;
end;procedure TfrmMain.GetFontNames;
var
DC: HDC;
begin
DC := GetDC(0);
EnumFonts(DC, nil, @EnumFontsProc, Pointer(FontName.Items));
ReleaseDC(0, DC);
FontName.Sorted := True;
end;
function EnumFontsProc(var LogFont: TLogFont; var TextMetric: TTextMetric;
FontType: Integer; Data: Pointer): Integer; stdcall;
begin
TStrings(Data).Add(LogFont.lfFaceName);
Result := 1;
end;procedure TfrmMain.GetFontNames;
var
DC: HDC;
begin
DC := GetDC(0);
EnumFonts(DC, nil, @EnumFontsProc, Pointer(FontName.Items));
ReleaseDC(0, DC);
FontName.Sorted := True;
end;
解决方案 »
- Interface RTTI 当参数含有 class of class 时编绎不过,怎么解决?
- 100分急求“怎么动态设置adoconnection的adoconnectionstring问题”
- 公司要使用加密狗对软件保护?
- 如何将数据库的数据(例如sql server)转化成xml格式
- 高手来看吧!
- 用Tprinter打印一张图片怎么才能在不同的打印机分辨率打出的图片大小相同?
- 用c#如何实现刻录功能
- 关于数据显示格式的转换
- 求救,关键字:索引
- 我在做控件时,参考VCL源码,发现有许多CM_XXXX,CN_XXXX的消息,是VCL内部的消息,察看书本,它说在联机帮助中有说明,但我找遍也没有,请问在哪儿?
- 如何清理Uses 里面使用的单元?
- 为什么用webbrowser显示的网页中无法执行“复制”操作?
VAR
DC : HDC;
BEGIN
DC := GetDC(0);
Result := (GetDeviceCaps(DC, LOGPIXELSX) = 96);
{ LOGPIXELSX will = 120 if large fonts are in use }
ReleaseDC(0, DC);
END;