【发布时间】:2015-05-23 07:25:19
【问题描述】:
是否有访问提示窗口画布的简洁方法?我不想在画布上绘制任何东西 - 我只会分配给组件的 Hint 属性 - 但我确实想找出 Windows 将使用提示窗口文本使用的任何字体呈现的文本宽度.
* 原因 *
我正在尝试构建带有选项卡列的提示窗口,例如
SomeControl.Hint :=
'Item 1: ' + #9 + 'Tom' + #13 +
'Item 2: ' + #9 + 'Dick' + #13 +
'Another Item: ' + #9 + 'Harry' + #13 ;
并且我希望将所有选项卡的名称放在另一个选项卡下。仅当提示字体为等宽时,上面显示的示例才会正确地制表符。我可以通过用正确数量的空格填充行来通过反复试验使用给定的比例字体来实现它,但我希望它适用于任何字体。我见过的大多数例子似乎都是为了改变提示窗口的外观——我想做的就是能够调用Canvas.TextWidth,这样我就可以计算出我需要添加什么填充来“推”行下一个制表位。
* 更新 *
我一直在误解 - 我假设提示控件尊重制表符,但实际上它似乎忽略了它。另一方面,TLabel 组件确实尊重制表符 - 它似乎移动到下一个 10 左右空间宽度的倍数。
【问题讨论】:
-
加一个供汤姆·迪克和哈利参考
标签: delphi canvas delphi-2007 hint