摘抄自:万一的博客

安装头文件:http://www.cnblogs.com/del/archive/2008/06/06/1215319.html

目录

  1. 基本使用方法(绘制直线)
  2. 绘制一组直线
  3. 绘制矩形
  4. 绘制一组矩形
  5. 绘制椭圆型
  6. 绘制绘制弧线
  7. 绘制扇形(饼型)
  8. 绘制多边形
  9. 绘制闭合曲线

绘制曲线

基本使用方法:unit Unitinterfac

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 的 Create 放到FormCreate方法中,把g.free放到FormDestroy里面的时候
  下面的draw会画不出东西来,包括g.Clear也没用了,为什么?为什么??}

g := TGPGraphics.Create(Canvas.Handle);//记住这个东西一定要随操作放在一起,在一起,在一起……  
p := TGPPen.Create(MakeColor(,,), );

 g.Clear(MakeColor(,,)); g.DrawLine(p, , , , ); {参数是整数} g.DrawLine(p, MakePoint(,), MakePoint(,)); {参数是点(整数)} g.DrawLine(p, 20.9, 80.0, 200.9, 80.0); {参数是小数} g.DrawLine(p, MakePoint(20.9, 100.0), MakePoint(200.9, 100.0)); {参数是点(小数)} g.Free; p.Free; end; end.

绘制一组直线

//使用数组记录端点
PtArr: array of TGPPoint; //绘制一组直线, 其实就是从七点开始依次将相邻的点连接
{如果是动态数组的话, 需要 @PtArr, 但动态数组本身就是个指针}
g.DrawLines(p, PGPPoint(PtArr), Length(PtArr));

绘制矩形

//绘制矩形
//x, y, w, h:Integer;
p.SetColor(aclRed);
g.DrawRectangle(p, x, y, w, h); p.SetColor(aclGold);
g.DrawRectangle(p, MakeRect(x, y, w, h));

一组矩形

//矩形变量
Rect: TGPRect;
RectArr: array[..] of TGPRect;
//矩形的属性
Rect.X := ;
Rect.Y := ;
Rect.Width := ClientWidth;
Rect.Height := ClientHeight;
//绘制矩形
g.DrawRectangles(p, PGPRect(@RectArr), Length(RectArr));

椭圆型

//椭圆形
g.DrawEllipse(p, x, y, w, h);

绘制弧线(其实就是没画完椭圆形)

//绘制椭圆形
//x, y, w, h:Integer;
//a1, a2:Integer;
//a1是开始角度( 表示在圆心的正右边开始画),a2是要画的弧度.
//a1 + a2 > 是顺时针角度,< 是逆时针角度 g.DrawArc(p, x, y, w, h, a1, a2);

绘制扇形(饼型)

//绘制扇形,具体参考绘制弧形
g.DrawPie(p, x, y, w, h, a1, a2);

多边形

//可参考绘制一组直线的方法,差别只是多了一条起点和重点间的连线
g.DrawPolygon(p, PGPPoint(PtArr), Length(PtArr));

闭合曲线

//参考多边形,差别是多边形曲线多了一个属性tension(控制弯曲程度)
var
tension: Single; {最后一个参数是可选的, 默认值是 0.5, 为 0 时曲线会转为直线段}
g.DrawClosedCurve(p, PGPPoint(PtArr), Length(PtArr),tension);

曲线

//参考闭合曲线,区别是不闭合
//第四、五位是数组中的起始和结束的序数
{后面三个参数是可选的, 最后参数的默认值是 0.5, 为 0 时曲线会转为直线段}
g.DrawCurve(p, PGPPoint(PtArr), Length(PtArr), n1, n2, tension);

delphi GDI+ [1]的更多相关文章

  1. Delphi GDI+ Library

    GDI+ LibraryThis library enables GDI+ functionality for Delphi 2009 and later. It differs from other ...

  2. Delphi GDI+ 安装方法

    [转]Delphi GDI+ 安装方法转自:万一博客(http://www.cnblogs.com/del/)GDI+ 是 Windows 的一个函数库, 来自 Windows\System32\GD ...

  3. Delphi GDI(一)

    Delphi 7下IGDIPlus库的使用 IGDI+是一个免费开源封装微软GDI+功能的Delphi库,该库使得可以用Delphi语言代码快速简短的实现复杂GDI+应用程序. 官方网站:http:/ ...

  4. Delphi GDI+基本用法总结

    GDI+以前只是听说过,还没怎么用过,这段时间用了用,觉得挺好用的.在这里总结一下.留个备忘. GDI+(Graphics Device Interface plus)是Windows XP中的一个子 ...

  5. Delphi+GDI

    源:Delphi 初试GDI+学习笔记 Delphi 深入GDI+学习笔记

  6. Delphi GDI对象之绘制位图

    http://www.cnblogs.com/pchmonster/archive/2012/07/06/2579334.html 绘制位图(Drawing Bitmaps) 绘制位图听起来似乎很难, ...

  7. Delphi GDI对象之绘制文本

    转载:http://www.cnblogs.com/pchmonster/archive/2012/07/06/2579185.html 基本绘图操作(Basic Drawing Operations ...

  8. delphi GDI 图片压缩代码 据说是位图缩放保持原图视觉效果最好的算法

    delphi 图片压缩代码 据说是位图缩放保持原图视觉效果最好的算法 若有更好的,请大神留言我也学习下,感谢! uses WinAPI.GDIPAPI, WinAPI.GDIPOBJ; var  Bi ...

  9. Delphi GDI对象之剪切区域

    原文链接: http://www.cnblogs.com/pchmonster/archive/2012/07/05/2577627.html 剪切区域(Clipping Regions) Regio ...

  10. Delphi GDI对象之脱屏位图(Offscreen Bitmaps),也叫内存位图

    http://www.cnblogs.com/pchmonster/archive/2012/07/09/2583613.html 脱屏位图(Offscreen Bitmaps) 脱屏位图,也叫内存位 ...

随机推荐

  1. bzoj 2111: [ZJOI2010]Perm 排列计数【树形dp+lucas】

    是我想复杂了 首先发现大于关系构成了一棵二叉树的结构,于是树形dp 设f[i]为i点的方案数,si[i]为i点的子树大小,递推式是\( f[i]=f[i*2]*f[i*2+1]*C_{si[i]-1} ...

  2. jquery中document.ready在两类浏览器中的区别[转]

    DOMready的构建方法不再重复,现代浏览器通过DOMContentLoaded来实现,IE通过readystatechange+doScroll来模拟该方法. 类似jquery中的document ...

  3. ueditor 编辑

    1.net  config.json imageUrlPrefix

  4. MySQL-时间(time、date、datetime、timestamp和year)

    情景进入 情境进入: 今天调试某查询页面,偶尔发现一个问题,刚刚插入的数据,没有正常排序显示,经过后台调试sql,发现一个问题??? 经过上面红色对比,不知道你发现问题没,Order by 只是多一个 ...

  5. AJPFX关于modifier总结

    修饰符总结 Modifiers        函数修饰符始终在返回值类型之前!!!        变量修饰符始终在变量类型之前!!!---------------------------------- ...

  6. css标签及属性

    css标签及属性 HTML引入CSS的方法 1.嵌入式  <style type = “text/css”>要写的样式</style> 2.外联式  <link rel ...

  7. Android一句代码给Activity定制标题栏

    在此之前,使用过几种方法设置标题栏: 1.常规法:这个方法是最常用的了,哪个activity需要什么样的标题栏,就在对应的xml布局设计.缺点:此方法维护起来困难,没有将标题栏的共性抽取出来, 如果要 ...

  8. 10.3 Implementing pointers and objects and 10.4 Representing rooted trees

    Algorithms 10.3 Implementing pointers and  objects  and 10.4 Representing rooted trees Allocating an ...

  9. Linux下Eclipse连接小米手机真机调试

    以前用Ubuntu 12.04可以真机调试,连上手机就可以了,上次看pear os 好看于是下了个玩玩(界面风格像mac 买不起,仿得起),这次想开发安卓发现真机调试不了了...于是乎各种找资料,各种 ...

  10. call和apply和bind的区别

    在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向. JavaScript 的一大 ...