Delphi XE2 之 FireMonkey 入门(10) - 常用结构 TPoint、TPointF、TSmallPoint、TSize、TRect、TRectF 及相关方法...
生活随笔
收集整理的這篇文章主要介紹了
Delphi XE2 之 FireMonkey 入门(10) - 常用结构 TPoint、TPointF、TSmallPoint、TSize、TRect、TRectF 及相关方法...
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
它們都是結(jié)構(gòu), TPointF、TRectF 屬新增, 其它也都有升級(jí); 現(xiàn)在都擁有豐富的方法和方便的運(yùn)算符重載; 且有一組相關(guān)的公共函數(shù).
這組內(nèi)容重要的是它們都來自 System.Types 單元, 也就是不僅僅在 FM 中可用.
TPoint:
Create(); // {運(yùn)算符重載} Equal; // = NotEqual; // <> Add; // + Subtract; // - Implicit; // 可從 TSmallPoint 隱身轉(zhuǎn)換到 TPoint Explicit; // 可顯示轉(zhuǎn)換到 TSmallPoint {方法} Distance(); // 計(jì)算兩點(diǎn)之間的距離 SetLocation(); // 重定位 Offset(); // 偏移 Add(); // 加 Subtract(); // 減 IsZero(); // 是否在 [0,0] 點(diǎn) {數(shù)據(jù)成員} X,Y: Longint;{ 測(cè)試 } procedure TForm1.Button1Click(Sender: TObject); varp1,p2,p3: TPoint; beginp1 := TPoint.Create(11, 22);p2.Create(11, 11);p3 := p1 + p2;ShowMessageFmt('%d,%d', [p3.X, p3.Y]); //22,33p3.SetLocation(0, 0);p3 := p1.Add(p2);ShowMessageFmt('%d,%d', [p3.X, p3.Y]); //22,33 end;
TPointF: 比 TPoint 多出三個(gè)方法:
Ceiling(); // Truncate(); // Round(); //procedure TForm1.Button1Click(Sender: TObject); varpf: TPointF;p1,p2,p3: TPoint; beginpf.Create(1.4, 1.6);p1 := pf.Ceiling;p2 := pf.Truncate;p3 := pf.Round;ShowMessageFmt('%d,%d %d,%d %d,%d', [p1.X, p1.Y, p2.X, p2.Y, p3.X, p3.Y]); //2,2 1,1 1,2 end;
TSmallPoint: 用得少, 成員也少.
Create(); // {運(yùn)算符重載} Equal; // = NotEqual; // <> Add; // + Subtract; // - {方法} Add(); // 加 Subtract(); // 減 Distance(); // 計(jì)算兩點(diǎn)間距 IsZero(); // 是否是 [0,0] 點(diǎn) {數(shù)據(jù)成員} X,Y: SmallInt;
TSize:
Create(); // {運(yùn)算符重載} Equal; // = NotEqual; // <> Add; // + Subtract; // - {方法} Add(); // 加 Subtract(); // 減 Distance(); // 計(jì)算兩點(diǎn)間距 IsZero(); // 是否是 [0,0] 點(diǎn) {屬性} Width; // Height; // {數(shù)據(jù)成員} cx,cy: Single;
TRect:
Create(); //建立時(shí)和可同時(shí)規(guī)格化矩形; 參見 NormalizeRect() 方法 {運(yùn)算符重載} Equal; // = NotEqual; // <> Add; // + (并集) Multiply; // * (交集) {類方法} Empty; //獲取一個(gè)空的 TRect 對(duì)象; 內(nèi)聯(lián) Intersect; //獲取兩個(gè)矩形的交集矩形 Union; //獲取兩個(gè)矩形的并集矩形 {方法} NormalizeRect(); //規(guī)格化矩形; 當(dāng) Top > Bottom 或 Left > Right 時(shí), 會(huì)置換數(shù)據(jù)使之合理. IsEmpty(); //是否為空 Contains(); //是否包含指定點(diǎn)或指定矩形 IntersectsWith(); //判斷和指定矩形是否交叉 Intersect(); //和指定矩形進(jìn)行交集運(yùn)算 Union(); //和指定矩形進(jìn)行并集運(yùn)算 Offset(); //偏移 SetLocation(); //設(shè)置新原點(diǎn) Inflate(); //放大矩形(保持中心點(diǎn)) CenterPoint(); //獲取中心點(diǎn) SplitRect(); //切除, TSplitRectType 枚舉(Left、Top、Right、Bottom)指示要留住的一邊 {屬性} Width: Integer; //有這些屬性很方便 Height: Integer; // Size: TSize; // Location: TPoint; // {數(shù)據(jù)結(jié)構(gòu), 這同前} (Left, Top, Right, Bottom: Longint) 或 (TopLeft, BottomRight: TPoint)
TRectF: 只比 TRect 多出了轉(zhuǎn)換到 TRect 時(shí)關(guān)于小數(shù)取舍的三個(gè)方法.
Ceiling(); // Truncate(); // Round(); //
相關(guān)的公共函數(shù)與過程:
{ function } EqualRect(); //判斷 TRect 或 TRectF 是否相等 Rect(); //構(gòu)建 TRect RectF(); //構(gòu)建 TRectF NormalizeRectF(); //從 TPointF 數(shù)組規(guī)格化出一個(gè) TRectF NormalizeRect(); //規(guī)格化 TRectF RectWidth(); //獲取矩形寬度 RectHeight(); //獲取矩形高度 RectCenter(); //讓矩形在另一指定矩形中居中 Bounds(); //根據(jù)原點(diǎn)、寬、高構(gòu)建矩形 Point(); //構(gòu)建 TPoint PointF(); //構(gòu)建 TPointF MinPoint(); //比對(duì)兩個(gè)點(diǎn)返回小的(優(yōu)先判斷了 Y) ScalePoint(); //按指定比例移動(dòng)點(diǎn) SmallPoint(); //構(gòu)建 TSmallPoint PtInRect(); //判斷點(diǎn)是否在指定矩形中 PtInCircle(); //判斷點(diǎn)是否在指定了中心與半徑的圓中 IntersectRect(); //判斷兩矩形是否相交 UnionRect(); //結(jié)合兩矩形 IsRectEmpty(); //判斷矩形是否為空 OffsetRect(); //偏移矩形 CenterPoint(); //獲取矩形中心點(diǎn) SplitRect(); //矩形切除 CenteredRect(); //算出兩個(gè)矩形的中間過渡矩形; 應(yīng)該是用于動(dòng)畫的 IntersectRectF(); //輸出兩矩形的交集 UnionRectF(); //輸出兩矩形的并集 { procedure } MultiplyRect(); //按比放縮矩形 InflateRect(); //按量放縮矩形
總結(jié)
以上是生活随笔為你收集整理的Delphi XE2 之 FireMonkey 入门(10) - 常用结构 TPoint、TPointF、TSmallPoint、TSize、TRect、TRectF 及相关方法...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xipian的php中文分词
- 下一篇: 【评论】为什么我的工资最低!