是否可以在Delphi FMX TEdit控件中更改字符间间距?

时间:2017-03-06 23:31:36

标签: delphi fonts firemonkey

我正在创建一个来自FMX TEdit控件的自定义组件。一个要求是我需要这个控件能够像精梳场一样模仿/行动。这需要最大长度和字符之间的间距增加,因此字符落在垂直线之间。请参见下面的图片。

Combed Fields Example

最大长度功能已经是TEdit控件的一部分,但我无法找到有关如何增加字符间距的任何信息。我查看了Delphi源代码,并没有遇到任何可能有用的内容。我遇到的字体设置是粗体/斜体的典型字体样式以及前导/中心/尾部的字体对齐。

我在TFontStretch下遇到TFontStyleExt,但未能找到更多相关信息。德尔福自己的网站称“Embarcadero Technologies目前没有任何其他信息。”我甚至不确定这与我正在寻找的是什么有关,但是我正在从这个时候开始拍摄。

如果有人能指出我正确的方向,我将不胜感激。

谢谢

2 个答案:

答案 0 :(得分:0)

我用它来实现串行键输入样式:

with tf.Session() as sess:

    sess.run(tf.global_variables_initializer())
    sess.run(tf.local_variables_initializer())

覆盖您的组件Ontyping事件处理程序,此代码放置一个'空格'在字母之间,所以它们将在每个矩形内绘制。

确保您的字体大小允许。

这是结果。 enter image description here

答案 1 :(得分:0)

我认为最好的解决方案是使用Monospaced fonts

之一

如果您找不到具有所需字符的Monospaced ont以适合您的控件,您可能需要使用许多可在线查找的字体编辑工具之一来对所需字体进行必要的更改。

使用Monospaced字体的最佳方法是,您可以在几乎所有允许您指定要使用的字体的FMX控件中使用它。

请注意,您可能必须随应用程序一起发送此自定义字体,然后在应用程序启动时动态注册它,并在应用程序关闭时取消注册。