标题:如果字体不存在,换另外一种字体,怎么写代码?
只看楼主
su0527
Rank: 2
等 级:论坛游民
帖 子:452
专家分:79
注 册:2015-1-10
结帖率:96.03%
已结贴  问题点数:20 回复次数:5 
如果字体不存在,换另外一种字体,怎么写代码?
比如label1的字体设置为“幼圆”,如果电脑中没有装该字体,则设置label1的字体为“微软雅黑”,如果该字体也没有在该电脑中安装,则设置label1的字体为“宋体”。
请问代码如何写?
搜索更多相关主题的帖子: 字体 存在 代码 微软 安装 
2017-11-24 10:07
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
可以先看看字体信息再作处理。
AFONT(aFontName)                    && 取字体
FOR i = 1 TO ALEN(aFontName)
    AFONT(aFontSize, aFontName[i])  && 取字体的字号
    cMsg = IIF((aFontSize[1] == -1), "可缩放字体","不可缩放字体")+","
    cMsg = cMsg + aFontName[i] +","
    FOR j = 1 TO ALEN(aFontSize)
      cMsg = cMsg + " " + TRANSFORM(aFontSize[j])
    ENDFOR
    ? cMsg
    IF ((i % 20) == 0)
        WAIT
    ENDIF
ENDFOR
? "结束.............."




2017-11-24 10:31
su0527
Rank: 2
等 级:论坛游民
帖 子:452
专家分:79
注 册:2015-1-10
得分:0 
回复 2楼 吹水佬
接下来如何处理?
只能选用可放缩字体吗?


[此贴子已经被作者于2017-11-25 12:26编辑过]

2017-11-25 12:24
su0527
Rank: 2
等 级:论坛游民
帖 子:452
专家分:79
注 册:2015-1-10
得分:0 
吹水佬,如下可否:
if afont(s,"幼圆")=.t.       &&返回值为真,说明该字体可用
thisform.label1.fontname="幼圆"
else
if afont(s,"微软雅黑")=.t.
thisform.label1.fontname="微软雅黑"
else
thisform.label1.fontname="宋体"
endif
endif
2017-11-25 12:49
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:20 
以下是引用su0527在2017-11-25 12:49:31的发言:

吹水佬,如下可否:
if afont(s,"幼圆")=.t.       &&返回值为真,说明该字体可用
thisform.label1.fontname="幼圆"
else
if afont(s,"微软雅黑")=.t.
thisform.label1.fontname="微软雅黑"
else
thisform.label1.fontname="宋体"
endif
endif

可以,也可以这样:
AFONT(arr)
thisform.label1.fontname = ICASE(;
    ASCAN(arr,"幼圆")>0,"幼圆",;
    ASCAN(arr,"微软雅黑")>0,"微软雅黑","宋体")
2017-11-25 15:08
gs2536785678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:45
帖 子:565
专家分:1668
注 册:2017-7-16
得分:0 
我一直用[宋体]
2018-02-18 08:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-482766-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.302611 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved