如何在 Delphi 中检测等宽字体?
我想TFont.Pitch
应该是fpFixed
,但它不适合我使用 Delphi XE4:
var
Font: TFont;
begin
Font := TFont.Create;
Font.Name := 'Courier New';
if Font.Pitch = fpFixed then
ShowMessage('Monospace Font!');
...
Font.Pitch
基于WinAPI的GetObject
。它应该返回lfPitchAndFamily
FIXED_PITCH
,但我总是得到DEFAULT_PITCH
的所有字体(也为Arial)。
1条答案
按热度按时间rhfm7lfc1#
是的,
GetObject
确实返回DEFAULT_PITCH
,但可以通过枚举所需名称的字体得到真值:**编辑:**在较新的 Delphi 版本中,
EnumFontFamilies
函数被描述为返回Integer
结果(与MSDN一致),正如Andreas Rejbrand在注解中注意到的,因此结果应被视为: