【问题标题】:In Delphi, Is there a way to adjust the line spacing of a TMemo?在 Delphi 中,有没有办法调整 TMemo 的行距?
【发布时间】:2010-12-21 07:41:36
【问题描述】:

我正在使用 TMemo 组件在有限的空间中显示一些文本。目前它使用的是一种不随 windows 一起提供的 truetype 字体,并且在运行时由应用程序安装。

在我的 PC(运行 Windows XP)上,每行文本之间的间距似乎约为 8 个像素。在另一台运行 Windows 7 的 PC 上,行距似乎约为 14 像素,这使得最下面一行的文本在备忘录中不可见。

所以,我的问题是这样的:

  1. 这是Windows版本不同造成的吗?这就是我能想到的不同之处。
  2. 是否可以通过某种方式调整此值,使其在应用程序的所有实例中保持一致,无论它在何处运行?

或者,我可以使用不同的组件来调整这个值吗?

【问题讨论】:

  • TMemo 只是标准 Windows 控件的包装。因此,它不是用 Delphi 编写的。基本上,TMemo 只是告诉操作系统“嘿,你能在这些坐标上放置一个很酷的多行编辑控件吗?”。所以更合适的标题应该是“在 Windows 中,有没有办法......”
  • 我在 Delphi 中使用 TMemo 进行编码。如果我说“在 Windows 中,有没有办法……”我可能会收到 C++ 代码。
  • 不,你是对的,它不是;但同样,我在 Delphi 中使用 TMemo 对此进行编码 - 可能有一种我不知道的使用 TMemo 的方法,而不是通过使用 Windows API 调用。这就是我要问的问题。

标签: delphi tmemo


【解决方案1】:

TMemo 是 Windows 通用控件的后代,它的行为取决于当前的 Windows 配置,因此很自然会得到不同的结果。

如果您只是想显示一些信息,最好使用可以像 TRichView 一样设置文本位置及其样式的组件。这个组件不是免费的,但它有自己的文本渲染引擎,可以让你用 CSS 样式设置文本样式,就像在不同版本的窗口中看起来一样的选择器。

【讨论】:

    【解决方案2】:

    除了 Mohsen 的回答,我还想提一下 LMD ElPack,它是 ElEdit 组件,它也有自己的文本渲染引擎。与 TRichView 不同,ElEdit 是纯文本编辑/备忘录组件,因此它是 TEdit/TMemo 的直接替代品。行高可以在那里配置

    【讨论】:

      猜你喜欢
      • 2013-10-18
      • 2021-08-30
      • 2021-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多