"
例一效果图:
在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;"