技术经验分享:Delphi下的GDI+编程【2】DrawLine

简介: 技术经验分享:Delphi下的GDI+编程【2】DrawLine

"

例一效果图:

在GDI+中,绘制直线是通过TGPGraphics类的DrawLine方法实现的,此类的一些方法如下:

DrawLine(线条)

DrawRectangle(矩形)

DrawEllipse(椭圆)

DrawPolygon(多边形)

DrawArc(弧形)

DrawCurve(基数样条)

DrawBezier(贝塞尔样条)

当然,要想在程序上画出来我们还需要一个TGPPen类,此类也有一些方法,如下:

SetStartCap(设置起始笔帽)

SetEndCap(设置末端笔帽)

SetDashStyle(设置画笔类型)

SetColor(设置画笔颜色)

SetWidth(设置画笔宽)

步骤:

新建工程,窗口宽和高都设为250好了,再编辑Form1的OnPaint事件代码,如下:

?unit //代码效果参考:https://v.youku.com/v_show/id_XNjQwMDQwNzE2MA==.html

Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type //定义组件与组件事件或过程函数 TForm1 = class(TForm)procedure FormPaint(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} uses GDIPOBJ, GDIPAPI; {加入这两个单元} procedure TForm1.FormPaint(Sender: TObject);var g: TGPGraphics; {定义图形类变量} p: TGPPen; {定义画笔类变量} begin g := TGPGraphics.Create(Canvas.Handle); {创建图形对象,参数为模块句柄,这里用的的画布句柄} p := TGPPen.Create(MakeColor(255,0,0),2); {创建画笔对象,参数1为颜色,参数2为笔宽,可以只留一个参数1,参数2默认为1} g.Clear(MakeColor(255,255,255)); {清除整个绘图面并以指定背景色填充这里用白色填充} p.SetColor(aclBlue); {设置颜色} p.SetWidth(10); {设置笔宽} g.DrawLine(p,20,40,200,40); {参数是整数,参数1、2为线头距左、距上, 参数3、4为线尾距左、距上。} g.DrawLine(p,MakePoint(20,60),MakePoint(200,60));//代码效果参考: https://v.youku.com/v_show/id_XNjQwMDQxMTUzMg==.html

{参数是点(整数),也就是线头的那一点(X,Y),还有就是线尾的那一点(X,Y)} g.DrawLine(p,20.9,80.0,200.9,80.0); {参数是小数,可以使数值更加精确,参数1、2为线头距左、距上,参数3、4为线尾距左、距上。} g.DrawLine(p,MakePoint(20.9,100.0),MakePoint(200.9,100.0)); {参数是点(小数),可以使数值更加精确,也就是线头的那一点(X,Y),还有就是线尾的那一点(X,Y)} g.Free; {释放图形对象} p.Free; {释放画笔对象}end;
"
image.png
相关文章
|
Java 编译器
Java“精度可能丢失”错误解决
在处理Java编程语言中“精度可能丢失”的警告或错误信息时,通常涉及到数据类型之间的转换,特别是从高精度类型(如long、double)转换到低精度类型(如int、short)时。本指南将帮助你理解这一问题的根源,并提供有效策略来避免或解决此类错误,确保程序正确无误地运行。我们将会探讨如何使用显式类型转换(cast),以及如何优化代码逻辑来规避潜在的数据丢失风险。
630 0
|
Windows
windows 技术篇 - uispy 工具获取和使用,windows窗口属性快捷查看工具
windows 技术篇 - uispy 工具获取和使用,windows窗口属性快捷查看工具
2421 0
windows 技术篇 - uispy 工具获取和使用,windows窗口属性快捷查看工具
|
算法 Windows
Winform控件优化之实现无锯齿的圆角窗体(或任意图形的无锯齿丝滑的窗体或控件)【借助LayeredWindow】
在一般能搜到的所有实现圆角窗体的示例中,都有着惨不忍睹的锯齿...而借助于Layered Windows,是可以实现丝滑无锯齿效果的Form窗体的,其具体原理就是分层窗体....
2229 0
Winform控件优化之实现无锯齿的圆角窗体(或任意图形的无锯齿丝滑的窗体或控件)【借助LayeredWindow】
|
5月前
|
安全 Linux Shell
CentOS恢复或重置遗忘的root用户密码的方法
至此,整个手术过程完成。没有繁复的迷魂阵,也无需烧香拜佛,就这样直截了当,你已经成功将被遗忘的密码变成了新的秘密。就像你的影子随形,但却更加隐秘安全。这不仅限于CentOS,其实许多Linux系统对于这样的技巧也会乖乖听话。这样的流程就像变魔术一样,让你重新掌握了“开关命运”的钥匙。
313 12
|
5月前
|
安全 Linux Shell
CentOS恢复或重置遗忘的root用户密码的方法
至此,整个手术过程完成。没有繁复的迷魂阵,也无需烧香拜佛,就这样直截了当,你已经成功将被遗忘的密码变成了新的秘密。就像你的影子随形,但却更加隐秘安全。这不仅限于CentOS,其实许多Linux系统对于这样的技巧也会乖乖听话。这样的流程就像变魔术一样,让你重新掌握了“开关命运”的钥匙。
1228 5
文件名: ?Ciwindows\system32 inetsrconfiglapplicationHost.config 错误:无法写入配置文件
文件名: ?Ciwindows\system32 inetsrconfiglapplicationHost.config 错误:无法写入配置文件
251 0
分享一些在 1688 上找一件代发商品的技巧
在1688上找一件代发商品需明确自身需求与定位,筛选可靠供应商,研究商品信息,利用精准搜索和平台推荐,关注活动,并与供应商充分沟通,确保合作顺畅。
|
机器学习/深度学习 存储 算法
技术好文:ttf文件结构解析
技术好文:ttf文件结构解析
669 0
|
存储 索引
mysqldump got error 1812 tablespace is missing for table when using lock tables
mysqldump got error 1812 tablespace is missing for table when using lock tables
712 1
|
机器学习/深度学习 运维 监控