IGPStringFormat 的方法和属性:

//方法:

IGPStringFormat.GetTabStops(); { 获取制表位 }

IGPStringFormat.SetTabStops(); { 设置制表位 }

IGPStringFormat.SetDigitSubstitution(); { 指定用本地数字替换西方数字时使用的语言和方法 }

IGPStringFormat.SetMeasurableCharacterRanges(); { 指定 IGPCharacterRanges 结构的数组 }

//属性:

IGPStringFormat.FormatFlags; { 获取或设置 TGPStringFormatFlags 集合 }

IGPStringFormat.Alignment; { 获取或设置水平对齐 }

IGPStringFormat.LineAlignment; { 获取或设置垂直对齐 }

IGPStringFormat.HotkeyPrefix; { 获取或设置 TGPHotkeyPrefix 枚举 }

IGPStringFormat.DigitSubstitutionLanguage; { 获取或设置用本地数字替换西方数字时使用的语言 }

IGPStringFormat.DigitSubstitutionMethod; { 获取或设置要用于数字替换的方法 }

IGPStringFormat.Trimming; { 获取或设置 TGPStringTrimming 枚举 }

IGPStringFormat.MeasurableCharacterRangeCount { 指定的 IGPCharacterRanges 结构中的字符总数 }

//类函数:

TGPStringFormat.GenericDefault; { 默认的 TGPStringFormat 对象 }

TGPStringFormat.GenericTypographic; { 一般的版式 TGPStringFormat 对象 }

IGPStringFormat.Alignment 测试:

uses GdiPlus;

procedure TForm1.FormPaint(Sender: TObject);

const

str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

var

Graphics: IGPGraphics;

Brush: IGPSolidBrush;

Pen: IGPPen;

Font: IGPFont;

StringFormat: IGPStringFormat;

Rect: TGPRectF;

begin

Graphics := TGPGraphics.Create(Handle);

Brush := TGPSolidBrush.Create(TGPColor.Red);

Pen := TGPPen.Create(TGPColor.Black);

Font := TGPFont.Create('Arial', 16, [FontStyleBold]);

StringFormat := TGPStringFormat.Create;

Rect.Initialize(10, 10, 180, 60);

Graphics.DrawString(str, Font, Rect, nil, Brush);

Graphics.DrawRectangle(Pen, Rect);

Rect.Y := Rect.Y + 60 + 20;

StringFormat.Alignment := StringAlignmentCenter;

Graphics.DrawString(str, Font, Rect, StringFormat, Brush);

Graphics.DrawRectangle(Pen, Rect);

Rect.Y := Rect.Y + 60 + 20;

StringFormat.Alignment := StringAlignmentFar;

Graphics.DrawString(str, Font, Rect, StringFormat, Brush);

Graphics.DrawRectangle(Pen, Rect);

end;

IGPStringFormat.LineAlignment 测试:

uses GdiPlus;

procedure TForm1.FormPaint(Sender: TObject);

const

str = 'ABCDEFG';

var

Graphics: IGPGraphics;

Brush: IGPSolidBrush;

Pen: IGPPen;

Font: IGPFont;

StringFormat: IGPStringFormat;

Rect: TGPRectF;

begin

Graphics := TGPGraphics.Create(Handle);

Brush := TGPSolidBrush.Create(TGPColor.Red);

Pen := TGPPen.Create(TGPColor.Black);

Font := TGPFont.Create('Arial', 16, [FontStyleBold]);

StringFormat := TGPStringFormat.Create;

Rect.Initialize(10, 10, 180, 60);

Graphics.DrawString(str, Font, Rect, nil, Brush);

Graphics.DrawRectangle(Pen, Rect);

Rect.Y := Rect.Y + 60 + 20;

StringFormat.LineAlignment := StringAlignmentCenter;

Graphics.DrawString(str, Font, Rect, StringFormat, Brush);

Graphics.DrawRectangle(Pen, Rect);

Rect.Y := Rect.Y + 60 + 20;

StringFormat.LineAlignment := StringAlignmentFar;

Graphics.DrawString(str, Font, Rect, StringFormat, Brush);

Graphics.DrawRectangle(Pen, Rect);

end;

IGPStringFormat.SetTabStops 测试:

uses GdiPlus;

procedure TForm1.FormPaint(Sender: TObject);

const

Tabs: array [0..2] of Single = (150, 100, 100);

Str = 'Name'#9'Test 1'#9'Test 2'#9'Test 3'#13#10 +

'Joe'#9'95'#9'88'#9'91'#13#10 +

'Mary'#9'98'#9'84'#9'90'#13#10 +

'Sam'#9'42'#9'76'#9'98'#13#10 +

'Jane'#9'65'#9'73'#9'92';

var

Graphics: IGPGraphics;

Brush: IGPSolidBrush;

Pen: IGPPen;

Font: IGPFont;

StringFormat: IGPStringFormat;

Rect: TGPRectF;

begin

Graphics := TGPGraphics.Create(Handle);

Brush := TGPSolidBrush.Create($FF000000);

Pen := TGPPen.Create($FFFF0000);

Font := TGPFont.Create('Courier New', 12);

StringFormat := TGPStringFormat.Create;

StringFormat.SetTabStops(0, [150, 100, 100]);

// StringFormat.SetTabStops(50, [100, 100, 100]); //同上

Rect.Initialize(10, 10, 420, 100);

Graphics.DrawString(str, Font, Rect, StringFormat, Brush);

Graphics.DrawRectangle(Pen, Rect);

end;

IGPStringFormat.HotkeyPrefix 测试:

uses GdiPlus;

procedure TForm1.FormPaint(Sender: TObject);

var

Graphics: IGPGraphics;

Font: IGPFont;

Pt: TGPPointF;

Brush: IGPSolidBrush;

StringFormat: IGPStringFormat;

begin

Graphics := TGPGraphics.Create(Handle);

Font := TGPFont.Create(Canvas.Font.Name, 12);

Pt.Initialize(10, 10);

Brush := TGPSolidBrush.Create($FF000000);

StringFormat := TGPStringFormat.Create;

StringFormat.HotkeyPrefix := HotkeyPrefixShow;

Graphics.DrawString('&Button', Font, Pt, StringFormat, Brush);

Pt.Y := Pt.Y * 2 + Font.GetHeight(Graphics);

Graphics.DrawString('Butt&on', Font, Pt, StringFormat, Brush);

end;

IGPStringFormat.Trimming 测试:

uses GdiPlus;

procedure TForm1.FormPaint(Sender: TObject);

var

Graphics: IGPGraphics;

Font: IGPFont;

Rect: TGPRectF;

Brush: IGPSolidBrush;

StringFormat: IGPStringFormat;

str: string;

i: Integer;

begin

Graphics := TGPGraphics.Create(Handle);

Graphics.Clear($FFFFFFFF);

Brush := TGPSolidBrush.Create($FF000000);

Font := TGPFont.Create(Canvas.Font.Name, 10);

Rect.Initialize(20, 20, ClientWidth - 40, Font.GetHeight(Graphics));

StringFormat := TGPStringFormat.Create;

str := Application.ExeName;

for i := 0 to 5 do

begin

StringFormat.Trimming := TGPStringTrimming(i);

Graphics.DrawString(str, Font, Rect, StringFormat, Brush);

Graphics.TranslateTransform(0, Rect.Y + Rect.Height);

end;

end;

另, 关于 TGPStringFormatFlags (对应 FormatFlags 属性或用于建立参数):

http://msdn.microsoft.com/zh-cn/library/system.drawing.stringformatflags(VS.80).aspx

php gdiplus,GdiPlus[44]: IGPGraphics (三) 关于文本绘制续 - IGPStringFormat相关推荐

  1. GdiPlus[44]: IGPGraphics (三) 关于文本绘制续 - IGPStringFormat

    IGPStringFormat 的方法和属性: //方法: IGPStringFormat.GetTabStops(); { 获取制表位 } IGPStringFormat.SetTabStops() ...

  2. 分割文本_PSENet、PANNet、DBNet三个文本检测算法异同

    点击蓝字关注我们 这三个文本检测算法都是segment base算法,通过由下而上的方式,先对text进行segment,然后再根据segment text,计算出text的instance PSEN ...

  3. PSENet PANNet DBNet 三个文本检测算法异同

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 这三个文本检测算法都是segment base算法,通过由下而上的方式,先对text进行seg ...

  4. TIA博途V17中ProDiag功能的使用方法示例(三)文本列表

    TIA博途V17中ProDiag功能的使用方法示例(三)文本列表 前面给大家分享了TIA博途V17中通过ProDiag功能监控数据类型和插入文本域的具体方法,具体可参考如下链接中的内容: TIA博途V ...

  5. 接单日记(三)文本处理之词云生成

    文章目录 接单日记(三)文本处理之词云生成 一. 实验目的 二. 实验内容 三. 程序及结果 1. 运行程序 2. 运行结果 接单日记(三)文本处理之词云生成 此为一个实验报告,故遵守实验报告的格式. ...

  6. 三个文本框自定义数字抽奖机

    三个文本框自定义数字抽奖机: 代码下载地址: 点击打开链接

  7. css学习记录三:文本属性

    css学习记录三:CSS文本属性 一.文本属性的作用 二.文本颜色 三.文本对齐 四.装饰文本 五.文本缩进 六.行间距 一.文本属性的作用 CSSS Text(文本)属性可定义文本的外观,比如文本的 ...

  8. DO-178B三种文本对照学习注记

    DO-178B三种文本对照学习注记 1.        引言 本文汇总了对英文版DO-178B.法文版ED-12B和中文版HB/Z295-96进行对照学习时所做的注记.这三种文本是: 英文版:RTCA ...

  9. linux的vi编辑器课件,linux课件--第三章+文本编辑器vi.ppt

    <linux课件--第三章+文本编辑器vi.ppt>由会员分享,可在线阅读,更多相关<linux课件--第三章+文本编辑器vi.ppt(14页珍藏版)>请在人人文库网上搜索. ...

  10. android staticlayout使用讲解,可实现文本绘制换行处理

    原帖地址:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0915/1682.html 使用Canvas的drawText绘制文本 ...

最新文章

  1. 2022-2028年中国玻璃纤维毡热塑性塑料(GMT)行业市场研究及前瞻分析报告
  2. lftp 4.4.0 发布,命令行的FTP工具
  3. [转]详细的mysql时间和日期函数
  4. vmware-tools安装指南
  5. android final函数,Android 回调函数 解析问题
  6. Android手机中怎么样在没root的情况下 修改 hosts 文件
  7. centos 6.5 配置网络
  8. 人人都能掌握的Java服务端性能优化方案
  9. Java Web实现信息管理
  10. Oracle char varchar varchar2 nvarchar2 的区别
  11. 禁用部分radio(实践)
  12. 高并发环境下,6个构建缓存服务需要注意的问题
  13. kubernetes集群应用部署实例
  14. Java面试题详解二:java中的关键字
  15. 谈如何边做事,边提高
  16. 【相机标定系列】标定工具仓库
  17. C语言小游戏(一)----猜数游戏
  18. 机器人末端执行器气爪怎么吸合_工业机器人带动末端执行器市场发展
  19. BrcmPatchRAM 黑苹果WiFi无线网卡蓝牙驱动
  20. 关于AMS117_3.3V电源芯片导致CH340串口芯片重启的问题

热门文章

  1. 机器学习 - 贝叶斯网络
  2. 不只是AlphaGo,谷歌DeepMind到底是何方神圣?
  3. 三菱a系列motion软体_三菱PLC全系列编程电缆制作方法
  4. 汉化风暴 python_手机端强大的汉化风暴工具 可汉化软件
  5. 3dmax2020渲染器下载3dmax2020渲染器VRay4.2下载安装教程
  6. wincc中c语言做变量自增,在WinCC中如何利用C动作实现变量自动加1-工业支持中心-西门子中国...
  7. 惠普p1106打印机安装步骤_hplaserjetp1106打印机驱动安装说明
  8. 数据挖掘导论(一):数据挖掘的定义,方法,用途
  9. 淘宝客推广赚钱全攻略
  10. 硬件学习笔记之稳压二极管