GdiPlus[40]: 不该忽略的一些基础结构
GdiPlus[40]: 不该忽略的一些基础结构
涂孟超 发表于3年前
GdiPlus[40]: 不该忽略的一些基础结构
  • 发表于 3年前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 学生专属云服务套餐 10元起购>>>   


这些基础结构有: TGPSize、TGPSizeF、TGPPoint、TGPPointF、TGPRect、TGPRectF.

它们自身提供了一些方便的功能, 如果早看看的话前面的很多代码能更精简些.

TGPPoint 或 TGPPointF 方便的功能:

1、因为已经重载了 Add、Subtract 运算符, 所以 "点" 可以 + 或 -;
2、可使用 Equals 函数对比是否一致.

var
  Pt1,Pt2,Pt3: TGPPoint;
  b: Boolean;
begin
  Pt1.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 函数.

var
  Size1, Size2, Size3: TGPSize;
begin
  Size1.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;             //获取起始点

 
 
 
 
 

 

 

  
共有 人打赏支持
粉丝 13
博文 2004
码字总数 14107
×
涂孟超
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: