如何知道用户的计算机上已经安装的字体。怎样给用户安装字体?(50分)

M

Mary

Unregistered / Unconfirmed
GUEST, unregistred user!
例:我用delphi编程中用到了‘文鼎彩云繁’字体,
但不知道用户是否安装了。如果没有安装,怎样给其安装?
谢谢!
 
D

dwwang

Unregistered / Unconfirmed
GUEST, unregistred user!
Screen.Fonts是一个TStrings对象,用IndexOf('文鼎彩云繁')
方法可以知道是否安装了新字体。
如果没有安装,则安装新字体:
AddFontResource('c:/YouyFontFile.ttf');
SendMessage( HWND_BROADCAST, WM_FONTCHANGE, 0, 0 );
 
C

CJ

Unregistered / Unconfirmed
GUEST, unregistred user!

在windows目录下有个FONTS隐含目录,把字体文件复制进去就可以了!(也许可以)
因该给dwwang加分,这样很有效。
 
M

Mary

Unregistered / Unconfirmed
GUEST, unregistred user!
用户并不赞同安装字体,因为字体太庞大了。(文鼎彩云繁字体有8M)
而我只是在Form上使用了lable,并采用了该字体。
怎样解决???(我不想使用图片。)
请高手指点,感激不尽!!!
 
D

dwwang

Unregistered / Unconfirmed
GUEST, unregistred user!
>>如果没有安装,怎样给其安装?
难道用户又反悔了? :)
不装字体想显示,恐怕得找M$了.
关键是你把程序和字体一起打包安装,
用户也看不出来嘛!
 
3

3h

Unregistered / Unconfirmed
GUEST, unregistred user!
如果将8M字库和应用程序一起发给用户让他安装,光是安装的时间就会激怒用户的。
如果你用的比较少的话,何妨做成图片?
如果用的比较多,建议不要用这些不标准字体,还是用宋仿揩楷黑比较通用。
不过你可以先测试用户,如果安装了类似带有“彩云”此类字体名的字体,就用
LABEL。FONT。NAME指定为这种字体,否则改为黑体。
这样行吗?
 
C

CJ

Unregistered / Unconfirmed
GUEST, unregistred user!
1、如果知识做LABEL只类的东西,用图形!
2、用户安装速度太慢刻CD
3、或者在程序中应用比较常用的字体,如果需要可以加上判断语句
4、还有什么?想到再说!
 
H

huizhang

Unregistered / Unconfirmed
GUEST, unregistred user!
Mary 小姐, 此问题还没搞定吗? 最近没见到你提新问题呀.
我看CJ的建议很实际, 使用一点图像不会有很大的损失, 文鼎字体用户有限;
实在不想用图形, 可以给定几种替换字体, 或者让用户能够自己设定界面字体.
 
M

Mary

Unregistered / Unconfirmed
GUEST, unregistred user!
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
881
DelphiTeacher的专栏
D
顶部