zoukankan      html  css  js  c++  java
  • 再学 GDI+[43]: 文本输出 获取已安装的字体列表

    这比用 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
    
  • 相关阅读:
    Swizzle在OC问题排查中的应用
    MacOS中系统提供的音频单元
    Mac catalyst 使用iOS-AudioUnit的音频采集、播放
    删除单向链表中的某一个节点
    C语言的的free和c++的delete的区别
    Mac下使用源码编译安装TensorFlow CPU版本
    ROC曲线与AUC值
    Linux中如何产生core文件?
    更改Linux默认栈空间的大小
    互信息(Mutual Information)
  • 原文地址:https://www.cnblogs.com/del/p/1223412.html
Copyright © 2011-2022 走看看