程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> GdiPlus[40]: 不該忽略的一些基礎結構

GdiPlus[40]: 不該忽略的一些基礎結構

編輯:Delphi

 這些基礎結構有: 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;       //獲取起始點 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved