php gdiplus,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);
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相关推荐
- GdiPlus[44]: IGPGraphics (三) 关于文本绘制续 - IGPStringFormat
IGPStringFormat 的方法和属性: //方法: IGPStringFormat.GetTabStops(); { 获取制表位 } IGPStringFormat.SetTabStops() ...
- 分割文本_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. 运行结果 接单日记(三)文本处理之词云生成 此为一个实验报告,故遵守实验报告的格式. ...
- 三个文本框自定义数字抽奖机
三个文本框自定义数字抽奖机: 代码下载地址: 点击打开链接
- css学习记录三:文本属性
css学习记录三:CSS文本属性 一.文本属性的作用 二.文本颜色 三.文本对齐 四.装饰文本 五.文本缩进 六.行间距 一.文本属性的作用 CSSS Text(文本)属性可定义文本的外观,比如文本的 ...
- DO-178B三种文本对照学习注记
DO-178B三种文本对照学习注记 1. 引言 本文汇总了对英文版DO-178B.法文版ED-12B和中文版HB/Z295-96进行对照学习时所做的注记.这三种文本是: 英文版:RTCA ...
- linux的vi编辑器课件,linux课件--第三章+文本编辑器vi.ppt
<linux课件--第三章+文本编辑器vi.ppt>由会员分享,可在线阅读,更多相关<linux课件--第三章+文本编辑器vi.ppt(14页珍藏版)>请在人人文库网上搜索. ...
- android staticlayout使用讲解,可实现文本绘制换行处理
原帖地址:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0915/1682.html 使用Canvas的drawText绘制文本 ...
最新文章
- 2022-2028年中国玻璃纤维毡热塑性塑料(GMT)行业市场研究及前瞻分析报告
- lftp 4.4.0 发布,命令行的FTP工具
- [转]详细的mysql时间和日期函数
- vmware-tools安装指南
- android final函数,Android 回调函数 解析问题
- Android手机中怎么样在没root的情况下 修改 hosts 文件
- centos 6.5 配置网络
- 人人都能掌握的Java服务端性能优化方案
- Java Web实现信息管理
- Oracle char varchar varchar2 nvarchar2 的区别
- 禁用部分radio(实践)
- 高并发环境下,6个构建缓存服务需要注意的问题
- kubernetes集群应用部署实例
- Java面试题详解二:java中的关键字
- 谈如何边做事,边提高
- 【相机标定系列】标定工具仓库
- C语言小游戏(一)----猜数游戏
- 机器人末端执行器气爪怎么吸合_工业机器人带动末端执行器市场发展
- BrcmPatchRAM 黑苹果WiFi无线网卡蓝牙驱动
- 关于AMS117_3.3V电源芯片导致CH340串口芯片重启的问题
热门文章
- 机器学习 - 贝叶斯网络
- 不只是AlphaGo,谷歌DeepMind到底是何方神圣?
- 三菱a系列motion软体_三菱PLC全系列编程电缆制作方法
- 汉化风暴 python_手机端强大的汉化风暴工具 可汉化软件
- 3dmax2020渲染器下载3dmax2020渲染器VRay4.2下载安装教程
- wincc中c语言做变量自增,在WinCC中如何利用C动作实现变量自动加1-工业支持中心-西门子中国...
- 惠普p1106打印机安装步骤_hplaserjetp1106打印机驱动安装说明
- 数据挖掘导论(一):数据挖掘的定义,方法,用途
- 淘宝客推广赚钱全攻略
- 硬件学习笔记之稳压二极管