GdiPlus[40]: 不该忽略的一些基础结构
这些基础结构有: TGPSize、TGPSizeF、TGPPoint、TGPPointF、TGPRect、TGPRectF.
它们自身提供了一些方便的功能, 如果早看看的话前面的很多代码能更精简些.
TGPPoint 或 TGPPointF 方便的功能:
1、因为已经重载了 Add、Subtract 运算符, 所以 "点" 可以 + 或 -;
2、可使用 Equals 函数对比是否一致.
varPt1,Pt2,Pt3: TGPPoint;b: Boolean; beginPt1.Initialize(30, 30);Pt2.Initialize(20, 20);{ Add }Pt3 := Pt1 + Pt2;ShowMessageFmt('%d, %d', [Pt3.X, Pt3.Y]); { 50, 50}{ Subtract }Pt3 := Pt1 - Pt2;ShowMessageFmt('%d, %d', [Pt3.X, Pt3.Y]); { 10, 10 }{ Equals }b := Pt1.Equals(TGPPoint.Create(30, 30));ShowMessage(BoolToStr(b, True)); { True } end;
TGPSize 或 TGPSizeF 在 TGPPoint 的基础上, 增加了一个判断是否为空的 Empty 函数.
varSize1, Size2, Size3: TGPSize; beginSize1.Initialize(10, 10);Size2.Initialize(10, 10);Size3 := Size1 + Size2;ShowMessage(BoolToStr(Size3.Empty, True)); { False }Size3 := Size1 - Size2;ShowMessage(BoolToStr(Size3.Empty, True)); { True } end;
TGPRect 和 TGPRectF 的功能更多, 容易忽视的有:
TGPRect.Create(TRect); //可通过 TRect 建立 Rect.InitializeFromLTRB(); //可根据两个点初始化 Rect.IsEmptyArea; //可判断矩形区域是否真实存在 Rect.Clone; //可复制 Rect.Contains(); //可判断是否包含一个点或另一个矩形 Rect.Equals(); //是否相等 Rect.IntersectsWith(); //是否相交 Rect.Inflate(); //改变大小 Rect.Offset(); //移动矩形 Rect.Intersect(); //产生相交的矩形 Rect.Union(); //产生联合的矩形 Rect.Location; //获取起始点
转载于:https://www.cnblogs.com/del/archive/2009/12/20/1628473.html
GdiPlus[40]: 不该忽略的一些基础结构相关推荐
- 博客总目录(2007.11.12 - 2010.4.25)
如果我的学习记录和历程能对你有所帮助, 我非常高兴; 但是 -- "万一" 不是高手.更不是大师, 只是利用工作之余学点东西, 并感觉学得挺吃力. 内容都是写时才会, 难免稚嫩, ...
- 【R语言】时间序列案例:住宅销量预测的乘法季节模型
数据来自澳大利亚莫纳什大学统计学教授Rob Hyndman创建的时间序列数据库(TSDB),数据库涵盖近800个时间序列数据(经济.水文.气象.农业等):该数据集提供了从1973年到1995年美国新单 ...
- 2020戴森设计大奖两项全球冠军揭晓
2020年是戴森设计大奖(The James Dyson Award)创下新纪录的一年,目前该奖项已经资助了来自世界各地的年轻工程师和科学家的250项发明.在今年充满严峻挑战的背景下,戴森设计大奖收到 ...
- Win32汇编:过程与宏调用
堆栈操作指令 在计算机领域,堆栈是一个不容忽视的概念,堆栈是一种后进先出(LIFO,Last-In,First-Out)的数据结构,这是因为最后压入堆栈的值总是最先被取出,而新数值在执行PUSH压栈时 ...
- 【专题十一】如何配置笔记本电脑
文章目录 一. 类型 二. CPU 三. 显卡 四. 散热 五. 屏幕 六. 内存 七. (固态)硬盘 八. 其他 九. 价格 文章号:[2022]002 一. 类型 1. 轻薄本:(轻薄优先) 特点 ...
- 多码头间运输数学模型
A mathematical model of inter-terminal transportation Kevin Tierney:Stefan Voß:Robert Stahlbock 摘要 我 ...
- mc服务器区块显示,区块 - Minecraft Wiki,最详细的官方我的世界百科
一个区块的地面部分的截面.整个区块最高可延伸至256 区块(Chunk)是Minecraft世界里一个大小为16×256×16 生成[] 区块宽16格,长16格,高256当玩家第一次出现在世界时会在其 ...
- 40 张图带你搞懂 TCP 和 UDP
前言 拿下计网协议后,我就是公园里最靓的仔 TCP/IP 基础知识总结 计算机网络基础知识总结 那么下面就开始我们本篇文章,文章组织脉络如下 运输层位于应用层和网络层之间,是 OSI 分层体系中的第四 ...
- Nature news: 未来40年,DNA测序将走向何方?
Nature news: 未来40年,DNA测序将走向何方? 2017-10-14 00:00 40年前,Sanger测序技术诞生,让DNA片段的测序成为现实.自此,DNA测序技术以惊人的速度发展,越 ...
最新文章
- JasperReport报表设计4
- MySQL双主配置步骤
- iOS开发中各种关键字的区别
- C语言实现链表(附完整源码)
- 超好看的引导购买页源码
- Web端调用Outlook 的发信窗口
- linux系统怎么启动服务器,Linux操作系统的启动步骤详细说明
- # 创业计划书-样例参考五千套(一)
- 综合能源业务有哪些?
- HTML 做个漂亮的表格
- Python:快速裁剪PDF页面
- 如何将图片转成png格式?图片的格式怎么转换
- Linux学习笔记(1)--Linux的发展史
- Windows10 下面一个非常快速而精悍的看图软件 - IrfanView
- ftp连接21端口出现的问题的解决方案
- linux里sh命令是做什么的?详解!
- 蓝桥杯比赛准备总结(大学编程学习历程)
- 《Qt 学习之路 2》
- bool 和_Bool的使用
- Linux人机界面用什么软件,浙江Linux人机界面品牌,人机界面界面设计品牌