GdiPlus[44]: IGPGraphics (三) 关于文本绘制续 - IGPStringFormat
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); conststr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; varGraphics: IGPGraphics;Brush: IGPSolidBrush;Pen: IGPPen;Font: IGPFont;StringFormat: IGPStringFormat;Rect: TGPRectF; beginGraphics := 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); conststr = 'ABCDEFG'; varGraphics: IGPGraphics;Brush: IGPSolidBrush;Pen: IGPPen;Font: IGPFont;StringFormat: IGPStringFormat;Rect: TGPRectF; beginGraphics := 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); constTabs: 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'; varGraphics: IGPGraphics;Brush: IGPSolidBrush;Pen: IGPPen;Font: IGPFont;StringFormat: IGPStringFormat;Rect: TGPRectF; beginGraphics := 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); varGraphics: IGPGraphics;Font: IGPFont;Pt: TGPPointF;Brush: IGPSolidBrush;StringFormat: IGPStringFormat; beginGraphics := 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); varGraphics: IGPGraphics;Font: IGPFont;Rect: TGPRectF;Brush: IGPSolidBrush;StringFormat: IGPStringFormat;str: string;i: Integer; beginGraphics := 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 dobeginStringFormat.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
GdiPlus[44]: IGPGraphics (三) 关于文本绘制续 - IGPStringFormat相关推荐
- android staticlayout使用讲解,可实现文本绘制换行处理
原帖地址:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0915/1682.html 使用Canvas的drawText绘制文本 ...
- linux的vi编辑器课件,linux课件--第三章+文本编辑器vi.ppt
<linux课件--第三章+文本编辑器vi.ppt>由会员分享,可在线阅读,更多相关<linux课件--第三章+文本编辑器vi.ppt(14页珍藏版)>请在人人文库网上搜索. ...
- Android 仿PhotoShop调色板应用(三) 主体界面绘制
版权声明:本文为博主原创文章,未经博主允许不得转载. Android 仿PhotoShop调色板应用(三) 主体界面绘制 关于PhotoShop调色板应用的实现我总结了两个最核心的部分: 1 ...
- 【DND图形库】四、文本绘制和按键检测
四.文本绘制和按键检测 (甲)文本绘制 文本是Text类,本质上是基于Sprite的,但是用户不需要考虑这么多.首先我们需要准备一个字体文件,在系统的C:\Windows\Fonts目录,有许多的字体 ...
- 分割文本_PSENet、PANNet、DBNet三个文本检测算法异同
点击蓝字关注我们 这三个文本检测算法都是segment base算法,通过由下而上的方式,先对text进行segment,然后再根据segment text,计算出text的instance PSEN ...
- PSENet PANNet DBNet 三个文本检测算法异同
向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程 公众号:datayx 这三个文本检测算法都是segment base算法,通过由下而上的方式,先对text进行seg ...
- TIA博途V17中ProDiag功能的使用方法示例(三)文本列表
TIA博途V17中ProDiag功能的使用方法示例(三)文本列表 前面给大家分享了TIA博途V17中通过ProDiag功能监控数据类型和插入文本域的具体方法,具体可参考如下链接中的内容: TIA博途V ...
- 接单日记(三)文本处理之词云生成
文章目录 接单日记(三)文本处理之词云生成 一. 实验目的 二. 实验内容 三. 程序及结果 1. 运行程序 2. 运行结果 接单日记(三)文本处理之词云生成 此为一个实验报告,故遵守实验报告的格式. ...
- 三个文本框自定义数字抽奖机
三个文本框自定义数字抽奖机: 代码下载地址: 点击打开链接
最新文章
- 梯度下降回归SGDRegressor、岭回归(Ridge)和套索(Lasso)回归、套索最小角回归、ElasticNet回归、正交匹配追踪回归
- anki 插入表格_另一种把思维导图和excel表格放入anki的方式
- 电子信息科学与技术计算机科学与技术会计学,我是本三学生 学的电子信息科学与技术专业 今年大三 从没接触过会计 想考注册会计师 可以么 ?...
- 《大道至简》第七八章读后感
- Deep Learning Toolkits 的比较(转)
- python QTreeWidgetItem下面有几个子tree_python-nlp ch1笔记:nlp的基础应用、高级应用、python优势、nltk环境搭建...
- 编程中的21个坑,你占几个?
- 容器编排技术 -- Kubernetes Master-Node通信
- Qt 信号槽的应用(二)
- 大屏导航Linux系统下载,掌讯方案MTK3561大屏导航ROOT固件
- 美国大学生数学建模竞赛O奖最高级别国家一等奖论文超全资料分享写作排版编程建模全覆盖资料参赛真实经历小白必拥有
- VMware卸载干净
- 不同币种间的清账 应付账款是USD记账 预付账款账款是人民币记账 如何清账
- 端端Clouduolc的安全机制
- ios开发——实用技术篇Block/KVO/通知/代理
- 机械祭天法力无边:C++primer之书店程序包含Sales_item.h源码
- HTML外边框塌陷什么意思,html-margin塌陷 :
- windows 10 python 3.7.9 install rosbag
- 索辰科技在科创板过会:拟募资金额有所下调,上半年亏损4000万元
- html5 智能家居 页面,内容二 - html5智能家居网站模板