delphi GDI+ [1]
摘抄自:万一的博客
安装头文件:http://www.cnblogs.com/del/archive/2008/06/06/1215319.html
目录
基本使用方法: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]的更多相关文章
- Delphi GDI+ Library
GDI+ LibraryThis library enables GDI+ functionality for Delphi 2009 and later. It differs from other ...
- Delphi GDI+ 安装方法
[转]Delphi GDI+ 安装方法转自:万一博客(http://www.cnblogs.com/del/)GDI+ 是 Windows 的一个函数库, 来自 Windows\System32\GD ...
- Delphi GDI(一)
Delphi 7下IGDIPlus库的使用 IGDI+是一个免费开源封装微软GDI+功能的Delphi库,该库使得可以用Delphi语言代码快速简短的实现复杂GDI+应用程序. 官方网站:http:/ ...
- Delphi GDI+基本用法总结
GDI+以前只是听说过,还没怎么用过,这段时间用了用,觉得挺好用的.在这里总结一下.留个备忘. GDI+(Graphics Device Interface plus)是Windows XP中的一个子 ...
- Delphi+GDI
源:Delphi 初试GDI+学习笔记 Delphi 深入GDI+学习笔记
- Delphi GDI对象之绘制位图
http://www.cnblogs.com/pchmonster/archive/2012/07/06/2579334.html 绘制位图(Drawing Bitmaps) 绘制位图听起来似乎很难, ...
- Delphi GDI对象之绘制文本
转载:http://www.cnblogs.com/pchmonster/archive/2012/07/06/2579185.html 基本绘图操作(Basic Drawing Operations ...
- delphi GDI 图片压缩代码 据说是位图缩放保持原图视觉效果最好的算法
delphi 图片压缩代码 据说是位图缩放保持原图视觉效果最好的算法 若有更好的,请大神留言我也学习下,感谢! uses WinAPI.GDIPAPI, WinAPI.GDIPOBJ; var Bi ...
- Delphi GDI对象之剪切区域
原文链接: http://www.cnblogs.com/pchmonster/archive/2012/07/05/2577627.html 剪切区域(Clipping Regions) Regio ...
- Delphi GDI对象之脱屏位图(Offscreen Bitmaps),也叫内存位图
http://www.cnblogs.com/pchmonster/archive/2012/07/09/2583613.html 脱屏位图(Offscreen Bitmaps) 脱屏位图,也叫内存位 ...
随机推荐
- 慕课网5-2编程练习:flex布局制作卡片布局案例
慕课网5-2编程练习:flex布局制作卡片布局案例 小伙伴们,学习了卡片布局,接下来我们根据效果图,也写出一个卡片布局的页面吧! 效果图如下: 任务 1.主体内容的卡片一行只能显示两个. 2.卡片与卡 ...
- springboot(八) 嵌入式Servlet容器自动配置原理和容器启动原理
1.嵌入式Servlet容器自动配置原理 1.1 在spring-boot-autoconfigure-1.5.9.RELEASE.jar => springboot自动配置依赖 jar包下,E ...
- UTF-8格式的文本文件程序读取异常
最近在windows服务器上直接创建并手打输入配置参数,比如设置概率0.6,然后用java程序打开读取该参数,在本地linux环境下测试完全正常,但是一放到服务器上,就报NotNumber错误,查看了 ...
- c语言程序设计案例教程(第2版)笔记(五)-软件开发基础知识
零散知识点: 软件的主要特征 软件是一种逻辑产品,而不是有型的物质: 软件需要设计.开发,但不是传统意义上的产品制造: 软件不会磨损,但软件需要维护,即:修改代码或增加模块: 虽然软件行业正在向基于组 ...
- Poj 2112 Optimal Milking (多重匹配+传递闭包+二分)
题目链接: Poj 2112 Optimal Milking 题目描述: 有k个挤奶机,c头牛,每台挤奶机每天最多可以给m头奶牛挤奶.挤奶机编号从1到k,奶牛编号从k+1到k+c,给出(k+c)*(k ...
- poj 1511 Invitation Cards spfa 邻接矩阵
题目链接: http://poj.org/problem?id=1511 题目大意: 这道题目比较难理解,我读了好长时间,最后还是在队友的帮助下理解了题意,大意就是,以一为起点,求从一到其他各点的最短 ...
- 水题 Codeforces Round #308 (Div. 2) A. Vanya and Table
题目传送门 /* 水题:读懂题目就能做 */ #include <cstdio> #include <iostream> #include <algorithm> ...
- 题解报告:hdu 1098 Ignatius's puzzle
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1098 题目中文是这样的: 伊格内修斯在数学上很差,他遇到了一个难题,所以他别无选择,只能上诉埃迪. 这 ...
- 解题报告:hdu 1073 Online Judge
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1073 Problem Description Ignatius is building an Onli ...
- Create the first sql server 2016 mobile report;创建 第一个 sqlserver 2016 Mobile report
在微软收购了datazen之后,sqlserver2016 集成了mobilereport,mobile report 基于html5,兼容各类主流浏览器,之前ssrs2008 R2中很多chart类 ...