(我该怎么办呢?)

如果我在VCL中创建两个标签并设置一个使用Arial和另一个Arial Narrow,我会看到预期的结果.

如果我在Firemonkey中执行相同操作,则第二个标签不会显示在Arial Narrow中.它甚至没有在Arial中显示(我的圆点是圆的,’s’的形状都是错的等等).

有谁知道为什么FM(我用Delphi XE4进行测试)没有正确显示字体?我能做些什么吗?

VCL表格的来源:

object Form3: TForm3
  Left = 0
  Top = 0
  Caption = 'Form3'
  ClientHeight = 198
  ClientWidth = 475
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Label1: TLabel
    Left = 24
    Top = 32
    Width = 134
    Height = 14
    Caption = 'This label is using Arial @11'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -11
    Font.Name = 'Arial'
    Font.Style = []
    ParentFont = False
  end
  object Label2: TLabel
    Left = 24
    Top = 52
    Width = 152
    Height = 15
    Caption = 'This label is using Arial Narrow @11'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -11
    Font.Name = 'Arial Narrow'
    Font.Style = []
    ParentFont = False
  end
  object Label3: TLabel
    Left = 24
    Top = 98
    Width = 398
    Height = 36
    Caption = 'This label is using Arial @32'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -32
    Font.Name = 'Arial'
    Font.Style = []
    ParentFont = False
  end
  object Label4: TLabel
    Left = 24
    Top = 140
    Width = 429
    Height = 37
    Caption = 'This label is using Arial Narrow @32'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -32
    Font.Name = 'Arial Narrow'
    Font.Style = []
    ParentFont = False
  end
end

FM表格的来源:

object Form4: TForm4
  Left = 0
  Top = 0
  Caption = 'Form4'
  ClientHeight = 207
  ClientWidth = 558
  FormFactor.Width = 320
  FormFactor.Height = 480
  FormFactor.Devices = [dkDesktop,dkiPhone,dkiPad]
  DesignerMobile = False
  DesignerWidth = 0
  DesignerHeight = 0
  DesignerDeviceName = ''
  DesignerOrientation = 0
  object Label1: TLabel
    Font.Family = 'Arial'
    StyledSettings = [ssSize,ssstyle,ssFontColor]
    Height = 17.000000000000000000
    Position.X = 16.000000000000000000
    Position.Y = 32.000000000000000000
    Text = 'This label is using Arial @11'
    Width = 225.000000000000000000
  end
  object Label2: TLabel
    Font.Family = 'Arial Narrow'
    StyledSettings = [ssSize,ssFontColor]
    Height = 17.000000000000000000
    Position.X = 16.000000000000000000
    Position.Y = 48.000000000000000000
    Text = 'This label is using Arial Narrow @11'
    Width = 225.000000000000000000
  end
  object Label3: TLabel
    Font.Family = 'Arial'
    Font.Size = 32.000000000000000000
    StyledSettings = [ssstyle,ssFontColor]
    Height = 41.000000000000000000
    Position.X = 16.000000000000000000
    Position.Y = 104.000000000000000000
    Text = 'This label is using Arial @32'
    Width = 433.000000000000000000
  end
  object Label4: TLabel
    Font.Family = 'Arial Narrow'
    Font.Size = 32.000000000000000000
    StyledSettings = [ssstyle,ssFontColor]
    Height = 65.000000000000000000
    Position.X = 16.000000000000000000
    Position.Y = 128.000000000000000000
    Text = 'This label is using Arial Narrow @32'
    Width = 545.000000000000000000
  end
end

解决方法

这似乎只影响系列中的字体 – 如果字体文件夹中不存在其自己的系列名称下的字体.例如,Arial Narrow是“Arial”字体文件中的一种字体(它存在于一个系列中,本身并不是一个系列).

通常,字体系列仅包括四种样式

Arial(天真地包含)

> Arial Regular
> Arial Bold
> Arial斜体
> Arial Bold Italic

然而,“Arial Narrow”存在于“Arial”系列中,与标准风格一致 – 即:

Arial(实际上包含)

> Arial Regular
> Arial Bold
> Arial斜体
> Arial Bold Italic
> Arial Narrow
> Arial Narrow Bold
> Arial Narrow Italic
> Arial Narrow Bold Italic
> Arial Black

似乎FMX只在任何给定的字体系列中看起来只有一层,并且没有看到任何偏离严格的GDI样式定义(Regular,Bold,Italic,Bold Italic)的样式变体.

这也通过检查影响Arial Black – 通过运行fonts文件夹很容易找到其他示例. Franklin Gothic Demi,Gill Sans Ultra Bold等……任何遵循上述模式的东西.遇到这些字体时,字体似乎在默认的Segoe UI中呈现.

权宜之计解决方案是使用Arial并将Scale属性设置为X = 0.82 – 它并不完美,但它与Arial Narrow非常接近.

这可能是一个错误,应该是QC’d.

delphi – 为什么精简字体在FireMonkey中无法正确显示?的更多相关文章

  1. 使用Html5多媒体实现微信语音功能

    这篇文章主要介绍了使用Html5多媒体实现微信语音功能,需要的朋友可以参考下

  2. HTML5 canvas 瀑布流文字效果的示例代码

    这篇文章主要介绍了HTML5 canvas 瀑布流文字效果的示例代码的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  3. Html5自定义字体解决方法

    这篇文章主要介绍了Html5自定义字体解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  4. 吃透移动端 Html5 响应式布局

    这篇文章主要介绍了吃透移动端 Html5 响应式布局,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  5. ios – 如何在使用PhoneGap构建的iPhone应用程序中使用Google Web Font?

    我们希望在为iOS设备构建的PhoneGap应用程序中使用GoogleWebFonts,但我们希望在应用程序包中托管字体文件,而不是使用代码通过Web动态获取字体.如果设备处于脱机状态,除非将字体文件捆绑到应用程序中,否则字体将不可用.谷歌提供下载网络字体的能力,但我们如何引用HTML应用程序内的本地字体文件?解决方法我们将字体文件放在.ttf格式的某个地方的assets/www文件夹中.宣言:然后像这样使用它:

  6. ios – UITableView节头与64位iPad上的行重叠. 32位工作正常

    32位iPad:64位iPad:这是代码:解决方法找到了解决方案.不得不使用CGFloat而不是float作为heightForHeaderAtSection的返回类型:

  7. 如何计算iOS 7中的实际字体大小(不是边框)?

    编辑:链接的“重复”问题仅涉及计算文本矩形.我需要在标签缩放之后计算实际字体大小,而不是字符串大小.此方法现已弃用:如何在iOS7中计算UILabel的字体大小,以缩小文字大小以适应?

  8. ios – NSAttributedString – 获取字体属性

    我需要获取有关我的属性字符串的信息,但无法弄清楚如何.我得到这个字典:检查下划线是很容易的:但是如何获取有关字体的信息,如字体,字体等.感谢任何帮助解决方法你可以从以下字体获得:问题在于确定是否大胆.没有财产.唯一的选择是查看字体的fontName,看看是否包含“Bold”或其他类似术语.不是所有的粗体字体都有“Bold”的名字.同样的问题适用于确定字体是斜体或笔记.您必须查看fontName并查找“斜体”或“倾斜”等内容.

  9. ios – 自定义字体不显示在设备上,但在模拟器上

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  10. ios – 如何在UIlabel中显示上标%字符作为字符串?

    我知道%在unicode中不存在上标,但是有什么办法可以显示%作为上标而不是使用html标签?

随机推荐

  1. delphi – 主窗口按进程名称处理

    DelphiXe,Win7x64如何从进程名称(exe文件的完整路径)获取主窗口句柄,或至少一个类或窗口名称(如果该进程只有一个窗口).例:解决方法我同意Petesh的说法,你需要枚举顶级窗口并检查创建它的进程的模块文件名.为了帮助您开始枚举顶级窗口,这是一个delphi实现.首先,当你回调给你时,你需要一些与EnumWindows方法通信的方式.为此声明一条记录,该记录将保存您要查找的模块的文件

  2. 如何在Delphi中纯粹通过RTTI信息(即不使用任何实际对象实例)获取TObjectList的子项类型?

    我正在使用RTTI实现用于流式传输任意Delphi对象的通用代码,并且为了使其工作(更具体地说,为了使加载部分工作),我需要以某种方式获得TObjectList的子项类型<T>不使用任何实际对象实例的字段.要求不使用任何实际对象实例的明显原因是,在从流加载对象的情况下(仅基于要加载的对象的类类型的知识),我将不会有任何实例在加载完成之前完全可用–我宁愿只能访问相关类的纯RTTI数据.我希望能

  3. inno-setup – Inno Setup – 安装程序背景图片

    图像作为安装程序背景如何用inno5.5.9做到这一点?

  4. inno-setup – Inno Setup – 如何添加多个arc文件进行解压缩?

    使用InnoSetup解压缩弧文件.我希望有可能解压缩多个arc文件以从组件选择中安装文件(例如).但仍然显示所有提取的整体进度条.这可能吗?的回答的修改预备是相同的,参考其他答案.在ExtractArc中,为要提取的每个存档调用AddArchive.

  5. delphi – 如何在DataSet的帮助下在TAdvStringGrid中显示数据库中的BLOB图像

    解决方法CreateBlobStream正在创建一个TStream对象,而不是TMemoryStream.由于您不想将JPG写入数据库,因此应使用bmRead而不是bmReadWrite.我不习惯sqlite,但你必须确保使用合适的二进制日期类型.为了确保存储的图像真的是JPG,您应该编写JPG以进行测试,例如:

  6. inno-setup – 在Inno Setup的Code部分下载程序后运行程序

    如何运行我通过Internet下载的应用程序,在代码部分中使用,并等待该应用程序完成运行.我有,使用InnoTools下载程序,下载这两个文件,我想,在第二个完成下载后运行该下载,或jdk-8u111-windows-x64.exe,然后继续安装.解决方法使用其他下载插件,而不是ITD(请参阅下面的原因).例如,InnoDownloadPlugin.当您包含idp.iss时,它定义了一个全局IDP

  7. progress-bar – Inno Setup Run部分的简单进度页面

    我的安装程序非常简单,它基本上是:>欢迎页面>进展页面>最终页面欢迎页面和最终页面是标准页面.在Progress页面,我正在静默安装一堆其他程序.实际的脚本是在[Run]部分中安装每个程序.问题是酒吧达到100%然后停留在那里.我只能更改消息文本.我想要实现的是使用Pascal脚本显示进度,例如:这样我就可以显示更准确的进度条.这就是我所拥有的:问题是,当我构建安装程序时,它不显示欢迎页面.我做错了什么?

  8. delphi – 如何使“显示/隐藏桌面图标”设置生效?

    下面的代码调用SHGetSetSettings函数来隐藏桌面图标但它只是从视图菜单中取消选中“显示桌面图标”.我打电话给SHChangeNotify;更新桌面,但这不起作用?解决方法isa,要刷新桌面,您可以将F5键发送到progman窗口隐藏桌面图标的另一种方法是再次显示

  9. inno-setup – Inno Setup – 避免显示子安装程序的文件名

    我试图使用InnoSetup–Howtohidecertainfilenameswhileinstalling?(FilenameLabel)的想法Theonlysuresolutionistoavoidinstallingthefiles,youdonotwanttoshow,usingthe[Files]section.Installthemusingacodeinstead.UsetheEx

  10. inno-setup – Inno Setup磁力链接下载实施

    我目前正在使用InnoDownloadPlugin为我的安装程序下载文件,这个问题最大的问题是faila正确下载文件.因为连接不良等诸多原因.我想添加一种替代方法来下载文件,因此用户可以选择是否需要常规方式或torrent方式.我知道我可以使用aria2c.exe应用程序(https://aria2.github.io/),有人可以帮我实现它的inno设置代码吗?我需要的是使用torrent(ar

返回
顶部