为什么TFontDialog比Screen.Fonts提供更少的字体? [英] Why TFontDialog gives less fonts than Screen.Fonts?
问题描述
似乎TFontDialog给出的字体列表与写字板,而Screen.Fonts给出的字体列表基本上与Word相同。
非常感谢您的见解!
PS:
Delphi XE,
Windows 7
PS:相关的SO主题:
$ b
-
)显然,TFontDialog
的确不显示这些隐藏的字体。
另外, 中列出的一些字体没有在 Font 组合框的
TFontDialog
,但添加到字体样式组合框。以 Arial 为例:字体样式列出了10个项目,它们似乎是字体 Arial , Arial Black 和 Arial Narrow 。I am wondering why TFontDialog gives less fonts than Screen.Fonts? (For example, the Arial* font, the Comic font, etc, does not show in TFontDialog)
It also seems that the font list given by TFontDialog is the same as WordPad, whereas the font list given by Screen.Fonts is basically the same as Word.
Thank you very much for your insights!
PS: Delphi XE, Windows 7
PS: related SO topics:
- Too many fonts when enumerating with EnumFontFamiliesEx function
- Finding System Fonts with Delphi
- How to use external fonts?
PS: related web pages:
- TFontDialog to show all Fonts @ borland.newsgroups.archived
- TFontDialog to show all Fonts @ delphigroups
unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm2 = class(TForm) lst1: TListBox; dlgFont1: TFontDialog; Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation {$R *.dfm} procedure TForm2.FormCreate(Sender: TObject); begin lst1.Items.AddStrings(Screen.Fonts); end; procedure TForm2.Button1Click(Sender: TObject); begin dlgFont1.Device := fdBoth; if dlgFont1.Execute then begin end; end; end.
解决方案Screen.Fonts
returns all installed fonts, including hidden fonts as administrated in Registry\HKCU\Software\Microsoft\Windows NT\CurrentVersion\Font Management\Inactive Fonts. (Source) Apparently,TFontDialog
does not display these hidden fonts.Furthermore, some fonts listed in
Screen.Fonts
are not mentioned in the Font combo box ofTFontDialog
, but are added to the Font style combo box. Take Arial for example: the Font style lists 10 items, which seems to be the combination of the fonts Arial, Arial Black and Arial Narrow.这篇关于为什么TFontDialog比Screen.Fonts提供更少的字体?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!