zoukankan      html  css  js  c++  java
  • GdiPlus[22]: IGPFont


    测试效果图:



    uses GdiPlus;
    
    procedure TForm1.FormPaint(Sender: TObject);
    var
      Graphics: IGPGraphics;
      Brush: IGPSolidBrush;
      Pt: TGPPointF;
      Font: IGPFont;
    begin
      Graphics := TGPGraphics.Create(Handle);
      Pt.Initialize(10, 10);
      Brush := TGPSolidBrush.Create($FFFF0000);
    
      Font := TGPFont.Create(Canvas.Handle);
      Graphics.DrawString('Self.Canvas.Font', Font, Pt, Brush);
    
      Graphics.TranslateTransform(0, Font.GetHeight(Graphics) * 1.5);
      Font := TGPFont.Create('微软雅黑', 12);
      Graphics.DrawString('''微软雅黑'', 12', Font, Pt, Brush);
    
      Graphics.TranslateTransform(0, Font.GetHeight(Graphics) * 1.5);
      Font := TGPFont.Create('微软雅黑', 12, [FontStyleBold]);
      Graphics.DrawString('''微软雅黑'', 12, [FontStyleBold]', Font, Pt, Brush);
    
      Graphics.TranslateTransform(0, Font.GetHeight(Graphics) * 1.5);
      Font := TGPFont.Create('微软雅黑', 12, [FontStyleItalic]);
      Graphics.DrawString('''微软雅黑'', 12, [FontStyleItalic]', Font, Pt, Brush);
    
      Graphics.TranslateTransform(0, Font.GetHeight(Graphics) * 1.5);
      Font := TGPFont.Create('微软雅黑', 12, [FontStyleUnderline]);
      Graphics.DrawString('''微软雅黑'', 12, [FontStyleUnderline]', Font, Pt, Brush);
    
      Graphics.TranslateTransform(0, Font.GetHeight(Graphics) * 1.5);
      Font := TGPFont.Create('微软雅黑', 12, [FontStyleStrikeout]);
      Graphics.DrawString('''微软雅黑'', 12, [FontStyleStrikeout]', Font, Pt, Brush);
    
      Graphics.TranslateTransform(0, Font.GetHeight(Graphics) * 1.5);
      Font := TGPFont.Create('微软雅黑', 12, FontStyleBoldItalic);
      Graphics.DrawString('''微软雅黑'', 12, FontStyleBoldItalic', Font, Pt, Brush);
    
      Graphics.TranslateTransform(0, Font.GetHeight(Graphics) * 1.5);
      Font := TGPFont.Create('微软雅黑', 12, FontStyleRegular, UnitPoint);
      Graphics.DrawString('''微软雅黑'', 12, FontStyleRegular, UnitPoint', Font, Pt, Brush);
    
      Graphics.TranslateTransform(0, Font.GetHeight(Graphics) * 1.5);
      Font := TGPFont.Create('微软雅黑', 12, FontStyleRegular, UnitPixel);
      Graphics.DrawString('''微软雅黑'', 12, FontStyleRegular, UnitPixel', Font, Pt, Brush);
    end;
    

    下面是一个关于 IGPFont 成员的测试:

    var
      FontFamily: IGPFontFamily;
      Font,Font2: IGPFont;
      FontHight: Single;
      LogFont: TLogFontW;
    begin
      FontFamily := TGPFontFamily.Create('宋体');
      Font := TGPFont.Create(FontFamily, 16, FontStyleBoldItalic, UnitPixel);
    //  Font := TGPFont.Create(FontFamily, 16, [], UnitPixel);
    
      { Font.Size: 字号大小}
      ShowMessageFmt('FontSize: %f', [Font.Size]); //16.00
    
      { Font.Style: 字体样式 }
      if FontStyleBold in Font.Style then ShowMessage('Bold');
      if FontStyleItalic in Font.Style then ShowMessage('Italic');
      if FontStyleUnderline in Font.Style then ShowMessage('Underline');
      if FontStyleStrikeout in Font.Style then ShowMessage('Strikeout');
      if ((FontStyleBoldItalic * Font.Style) = FontStyleBoldItalic) then ShowMessage('Bold、Italic');
      if Font.Style = [] then ShowMessage('FontStyleRegular');
    
      { Font.MeasureUnit: 尺寸单位 }
      case Font.MeasureUnit of
        UnitWorld:      ShowMessage('World');
        UnitDisplay:    ShowMessage('Display');
        UnitPixel:      ShowMessage('Pixel');
        UnitPoint:      ShowMessage('Point');
        UnitInch:       ShowMessage('Inch');
        UnitDocument:   ShowMessage('Document');
        UnitMillimeter: ShowMessage('Millimeter');
      end;
    
      { Font.GetHeight: 字体高度 }
      FontHight := Font.GetHeight(TGPGraphics.Create(Handle));
    //  FontHight := Font.GetHeight(nil);
    //  FontHight := Font.GetHeight(0);
      ShowMessageFmt('FontHight: %f', [FontHight]); //18.25
    
      { Font.IsAvailable: 字体是否可用 }
      ShowMessage(BoolToStr(Font.IsAvailable, True));
    
      { Font.GetLogFontW: 获取 TLogFont 结构数据 }
      LogFont := Font.GetLogFontW(TGPGraphics.Create(Handle));
      ShowMessage(LogFont.lfFaceName);
    
      { Font.Family: 获取 IGPFontFamily }
      ShowMessage(Font.Family.FamilyName);
    
      { Font.Clone: 克隆 }
      Font2 := Font.Clone;
      ShowMessage(Font2.Family.FamilyName);
    end;
    
  • 相关阅读:
    Struts2框架
    读者写者问题
    哲学家就餐问题
    理解中断
    理解处理机调度
    理解死锁
    理解进程
    Linux CentOS 6.7 挂载U盘
    家庭-养老院模型理解IOC和DI
    Bash基础
  • 原文地址:https://www.cnblogs.com/del/p/1624784.html
Copyright © 2011-2022 走看看