可以用combobox1.Items:= Screen.Fonts;
也可以这样:
windows提供这样的api,最主要的是enumfonts(),在sdk中定义如下:
int EnumFonts(
HDC hdc, // 指明要访问的设备描述表句柄
LPCTSTR lpFaceName, // 指向字体名字字符串的指针
FONTENUMPROC lpFontFunc, // 列举的回掉函数地址
LPARAM lParam // 保存结果的地址
);
先定义一个回调函数:
function enumFontsProc(Var LogFont:TLogFont;var TextMetric:TTextMetric;
FontType:integer;myData:pointer):integer;stdcall;
begin
TStrings(myData).add(logFont.lfFaceName);//设定字体名称
Result:=1;//结果不为空
end;
然后可以调用enumfonts();
try
hsysdc:=GetDc(0);//得到系统设备描述表句柄
EnumFonts(hsysdc,nil,@EnumFontsProc,pointer(Combobox1.Items));
//结果放在combobox1中.
finally
releaseDc(0,hsysdc);
end;
也可以这样:
windows提供这样的api,最主要的是enumfonts(),在sdk中定义如下:
int EnumFonts(
HDC hdc, // 指明要访问的设备描述表句柄
LPCTSTR lpFaceName, // 指向字体名字字符串的指针
FONTENUMPROC lpFontFunc, // 列举的回掉函数地址
LPARAM lParam // 保存结果的地址
);
先定义一个回调函数:
function enumFontsProc(Var LogFont:TLogFont;var TextMetric:TTextMetric;
FontType:integer;myData:pointer):integer;stdcall;
begin
TStrings(myData).add(logFont.lfFaceName);//设定字体名称
Result:=1;//结果不为空
end;
然后可以调用enumfonts();
try
hsysdc:=GetDc(0);//得到系统设备描述表句柄
EnumFonts(hsysdc,nil,@EnumFontsProc,pointer(Combobox1.Items));
//结果放在combobox1中.
finally
releaseDc(0,hsysdc);
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货