摘抄自:万一的博客

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

目录

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

绘制曲线

基本使用方法:unit Unitinterfac

  1. uses
  2. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  3. Dialogs;
  4. type
  5. TForm1 = class(TForm)
  6. procedure FormPaint(Sender: TObject);
  7. end;
  8. var
  9. Form1: TForm1;
  10. implementation
  11. {$R *.dfm}
  12. uses GDIPOBJ, GDIPAPI; //头文件
  13. procedure TForm1.FormPaint(Sender: TObject);
  14. var
  15. g: TGPGraphics; //我试了一下
  16. p: TGPPen;
  17. begin
     {这里我遇到一个问题,我把 g Create 放到FormCreate方法中,把g.free放到FormDestroy里面的时候
      下面的draw会画不出东西来,包括g.Clear也没用了,为什么?为什么??}
  1.  
  1. g := TGPGraphics.Create(Canvas.Handle);//记住这个东西一定要随操作放在一起,在一起,在一起……
    p := TGPPen.Create(MakeColor(,,), );
  1.  
  1. 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.

绘制一组直线

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

绘制矩形

  1. //绘制矩形
  2. //x, y, w, h:Integer;
  3. p.SetColor(aclRed);
  4. g.DrawRectangle(p, x, y, w, h);
  5.  
  6. p.SetColor(aclGold);
  7. g.DrawRectangle(p, MakeRect(x, y, w, h));

一组矩形

  1. //矩形变量
  2. Rect: TGPRect;
  3. RectArr: array[..] of TGPRect;
  4. //矩形的属性
  5. Rect.X := ;
  6. Rect.Y := ;
  7. Rect.Width := ClientWidth;
  8. Rect.Height := ClientHeight;
  9. //绘制矩形
  10. g.DrawRectangles(p, PGPRect(@RectArr), Length(RectArr));

椭圆型

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

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

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

绘制扇形(饼型)

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

多边形

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

闭合曲线

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

曲线

  1. //参考闭合曲线,区别是不闭合
  2. //第四、五位是数组中的起始和结束的序数
  3. {后面三个参数是可选的, 最后参数的默认值是 0.5, 0 时曲线会转为直线段}
  4. 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. 慕课网5-2编程练习:flex布局制作卡片布局案例

    慕课网5-2编程练习:flex布局制作卡片布局案例 小伙伴们,学习了卡片布局,接下来我们根据效果图,也写出一个卡片布局的页面吧! 效果图如下: 任务 1.主体内容的卡片一行只能显示两个. 2.卡片与卡 ...

  2. springboot(八) 嵌入式Servlet容器自动配置原理和容器启动原理

    1.嵌入式Servlet容器自动配置原理 1.1 在spring-boot-autoconfigure-1.5.9.RELEASE.jar => springboot自动配置依赖 jar包下,E ...

  3. UTF-8格式的文本文件程序读取异常

    最近在windows服务器上直接创建并手打输入配置参数,比如设置概率0.6,然后用java程序打开读取该参数,在本地linux环境下测试完全正常,但是一放到服务器上,就报NotNumber错误,查看了 ...

  4. c语言程序设计案例教程(第2版)笔记(五)-软件开发基础知识

    零散知识点: 软件的主要特征 软件是一种逻辑产品,而不是有型的物质: 软件需要设计.开发,但不是传统意义上的产品制造: 软件不会磨损,但软件需要维护,即:修改代码或增加模块: 虽然软件行业正在向基于组 ...

  5. Poj 2112 Optimal Milking (多重匹配+传递闭包+二分)

    题目链接: Poj 2112 Optimal Milking 题目描述: 有k个挤奶机,c头牛,每台挤奶机每天最多可以给m头奶牛挤奶.挤奶机编号从1到k,奶牛编号从k+1到k+c,给出(k+c)*(k ...

  6. poj 1511 Invitation Cards spfa 邻接矩阵

    题目链接: http://poj.org/problem?id=1511 题目大意: 这道题目比较难理解,我读了好长时间,最后还是在队友的帮助下理解了题意,大意就是,以一为起点,求从一到其他各点的最短 ...

  7. 水题 Codeforces Round #308 (Div. 2) A. Vanya and Table

    题目传送门 /* 水题:读懂题目就能做 */ #include <cstdio> #include <iostream> #include <algorithm> ...

  8. 题解报告:hdu 1098 Ignatius's puzzle

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1098 题目中文是这样的: 伊格内修斯在数学上很差,他遇到了一个难题,所以他别无选择,只能上诉埃迪. 这 ...

  9. 解题报告:hdu 1073 Online Judge

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1073 Problem Description Ignatius is building an Onli ...

  10. Create the first sql server 2016 mobile report;创建 第一个 sqlserver 2016 Mobile report

    在微软收购了datazen之后,sqlserver2016 集成了mobilereport,mobile report 基于html5,兼容各类主流浏览器,之前ssrs2008 R2中很多chart类 ...