这比用 Screen.Fonts; 获取麻烦一些.
本例效果图:
代码文件:
本例效果图:
代码文件:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; procedure FormCreate(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} uses GDIPOBJ, GDIPAPI; procedure TForm1.FormCreate(Sender: TObject); var fontFamilyArr: array of TGPFontFamily; fonts: TGPFontCollection; fontCount: Integer; str: string; i: Integer; begin fonts := TGPInstalledFontCollection.Create; fontCount := fonts.GetFamilyCount; SetLength(fontFamilyArr, fontCount); for i := 0 to fontCount - 1 do fontFamilyArr[i] := TGPFontFamily.Create; fonts.GetFamilies(fontCount, fontFamilyArr, fontCount); Memo1.Clear; for i := 0 to fontCount - 1 do begin fontFamilyArr[i].GetFamilyName(str); Memo1.Lines.Add(str); end; for i := 0 to fontCount - 1 do fontFamilyArr[i].Free; fonts.Free; end; end.窗体文件:
object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 196 ClientWidth = 176 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False Position = poDesktopCenter OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object Memo1: TMemo Left = 0 Top = 0 Width = 176 Height = 196 Align = alClient Lines.Strings = ( 'Memo1') ScrollBars = ssBoth TabOrder = 0 ExplicitWidth = 339 ExplicitHeight = 206 end end