它们都是结构, TPointF、TRectF 属新增, 其它也都有升级; 现在都拥有丰富的方法和方便的运算符重载; 且有一组相关的公共函数.

这组内容重要的是它们都来自 System.Types 单元, 也就是不仅仅在 FM 中可用.



TPoint:


Create();      //
{运算符重载}
Equal;         // =
NotEqual;      // <>
Add;           // +
Subtract;      // -
Implicit;      // 可从 TSmallPoint 隐身转换到 TPoint
Explicit;      // 可显示转换到 TSmallPoint
{方法}
Distance();    // 计算两点之间的距离
SetLocation(); // 重定位
Offset();      // 偏移
Add();         // 加
Subtract();    // 减
IsZero();      // 是否在 [0,0] 点
{数据成员}
X,Y: Longint;{ 测试 }
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 多出三个方法:


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();   //
{运算符重载}
Equal;      // =
NotEqual;   // <>
Add;        // +
Subtract;   // -
{方法}
Add();      // 加
Subtract(); // 减
Distance(); // 计算两点间距
IsZero();   // 是否是 [0,0] 点
{数据成员}
X,Y: SmallInt;


TSize:


Create();   //
{运算符重载}
Equal;      // =
NotEqual;   // <>
Add;        // +
Subtract;   // -
{方法}
Add();      // 加
Subtract(); // 减
Distance(); // 计算两点间距
IsZero();   // 是否是 [0,0] 点
{属性}
Width;      //
Height;     //
{数据成员}
cx,cy: Single;


TRect:


Create();         //建立时和可同时规格化矩形; 参见 NormalizeRect() 方法
{运算符重载}
Equal;            // =
NotEqual;         // <>
Add;              // + (并集)
Multiply;         // * (交集)
{类方法}
Empty;            //获取一个空的 TRect 对象; 内联
Intersect;        //获取两个矩形的交集矩形
Union;            //获取两个矩形的并集矩形
{方法}
NormalizeRect();  //规格化矩形; 当 Top > Bottom 或 Left > Right 时, 会置换数据使之合理.
IsEmpty();        //是否为空
Contains();       //是否包含指定点或指定矩形
IntersectsWith(); //判断和指定矩形是否交叉
Intersect();      //和指定矩形进行交集运算
Union();          //和指定矩形进行并集运算
Offset();         //偏移
SetLocation();    //设置新原点
Inflate();        //放大矩形(保持中心点)
CenterPoint();    //获取中心点
SplitRect();      //切除, TSplitRectType 枚举(Left、Top、Right、Bottom)指示要留住的一边
{属性}
Width: Integer;   //有这些属性很方便
Height: Integer;  //
Size: TSize;      //
Location: TPoint; //
{数据结构, 这同前}
(Left, Top, Right, Bottom: Longint) 或 (TopLeft, BottomRight: TPoint)


TRectF: 只比 TRect 多出了转换到 TRect 时关于小数取舍的三个方法.


Ceiling();  //
Truncate(); //
Round();    //


相关的公共函数与过程:


{ function }
EqualRect();      //判断 TRect 或 TRectF 是否相等
Rect();           //构建 TRect
RectF();          //构建 TRectF
NormalizeRectF(); //从 TPointF 数组规格化出一个 TRectF
NormalizeRect();  //规格化 TRectF
RectWidth();      //获取矩形宽度
RectHeight();     //获取矩形高度
RectCenter();     //让矩形在另一指定矩形中居中
Bounds();         //根据原点、宽、高构建矩形
Point();          //构建 TPoint
PointF();         //构建 TPointF
MinPoint();       //比对两个点返回小的(优先判断了 Y)
ScalePoint();     //按指定比例移动点
SmallPoint();     //构建 TSmallPoint
PtInRect();       //判断点是否在指定矩形中
PtInCircle();     //判断点是否在指定了中心与半径的圆中
IntersectRect();  //判断两矩形是否相交
UnionRect();      //结合两矩形
IsRectEmpty();    //判断矩形是否为空
OffsetRect();     //偏移矩形
CenterPoint();    //获取矩形中心点
SplitRect();      //矩形切除
CenteredRect();   //算出两个矩形的中间过渡矩形; 应该是用于动画的
IntersectRectF(); //输出两矩形的交集
UnionRectF();     //输出两矩形的并集
{ procedure }
MultiplyRect();   //按比放缩矩形
InflateRect();    //按量放缩矩形

Delphi XE2 之 FireMonkey 入门(10) - 常用结构 TPoint、TPointF、TSmallPoint、TSize、TRect、TRectF 及相关方法...相关推荐

  1. Delphi XE2 之 FireMonkey 入门(35) - 控件基础: TFmxObject: 其它

    Delphi XE2 之 FireMonkey 入门(35) - 控件基础: TFmxObject: 其它 TFmxObject 增加了 TagObject.TagFloat.TagString, 算 ...

  2. Delphi XE2 之 FireMonkey 入门(1)

    Delphi XE2 的 FireMonkey 是跨平台的, 暂时只准备看看它在 Windows 下(我是 32 位 Win7)的应用情况. 很新的东西, 相信有了它, 以后的界面将会更灵活.漂亮, ...

  3. Delphi XE2 之 FireMonkey 入门(17) - 特效

    刚打开 XE2 时, 就从 Tool Palette 窗口的 Effects 组中发现洋洋洒洒的六十多个特效... 每个特效分别对应一个类, 分别来自 FMX.Effects 和 FMX.Filter ...

  4. Delphi XE2 之 FireMonkey 入门(13) - 动画(下)

    TAnimation 类的主要成员: protectedfunction NormalizedTime: Single; //procedure ProcessAnimation; virtual; ...

  5. Delphi XE2 之 FireMonkey 入门(2)

    FireMonkey 的控件都是自己绘制的(而不是基于系统组件), 我想它们应该是基于一些基本图形; 就从基本图形开始吧. FMX.Objects 单元给出的类: TShape //基本图形的基类 T ...

  6. Delphi XE2 之 FireMonkey 入门(26) - 数据绑定: TBindingsList: TBindExprItems

    如果要给一对 "源控件" 和 "目标控件" 写多个表达式, 使用 TBindExpression 就不如 TBindExprItems 了. TBindExpr ...

  7. Delphi XE2 之 FireMonkey 入门(20) - TStyleBook(皮肤、样式相关)

    我觉得叫 "皮肤" 不如叫 "样式" 或 "风格", 因为它可以包含和动作关联的动画. 在 FMX 下, 控件可以任意绘制, 各部件个性化的 ...

  8. Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox

    TScrollBox -> TCustomListBox -> TListBox; 其元素项是 TListBoxItem 类型. TListBox 的功能在 TCustomListBox ...

  9. Delphi XE2 之 FireMonkey 入门(23) - 数据绑定: TBindingsList: TBindExpression

    准备用 TBindingsList 重做上一个例子. 可以先把 TBindingsList 理解为是一组绑定表达式(TBindExpression)的集合; 官方应该是提倡在设计时完成 TBindEx ...

最新文章

  1. Mysql Cluster 集群 windows版本
  2. 第一个PhoneGap程序以及错误解决
  3. 递归生成全排列【C/C++】
  4. 水题:P2799 国王的魔镜
  5. List 集合remove问题
  6. 背景图片自适应,不重复
  7. 欧洲语言学习统一标准C1C2音频,北京通州区有没有西班牙语培训班(为何选择西班牙语)...
  8. ps如何修改图片大小尺寸_如何查看图片尺寸,大小及如何修改图片尺寸—淘宝美工入门课03...
  9. TextView赋值int型,并显示
  10. hadoop2.6.0 - eclipse插件下载、编译、安装、配置
  11. python数据爬虫项目
  12. 动画骨骼模型文件格式fbx
  13. 【暴强】200种好口碑便宜护肤品 - 生活至上,美容至尚!
  14. 数据库管理系统MFC实现
  15. teamviewer出现商业用途的解决办法
  16. 谷粒商城笔记+踩坑(17)——【认证模块】登录,用户名密码登录+微博社交登录+SpringSession+xxl-sso单点登录
  17. 解决chrome浏览器手机调试模式下鼠标指针消失(量化范围设置无效情况)
  18. 剑客与刀客--java vs .net
  19. c语言调用cmd隐藏黑窗口,golang 调用cmd下程序隐藏黑窗口-方法1
  20. 从电脑QQ上恢复聊天记录备份到手Q,却一直显示手机QQ账号处于离线状态,请上线后再尝试?

热门文章

  1. c++和java哪个难_前端和Java开发哪个难?哪个学习容易一点?
  2. android电视盒子解码很慢,电视盒子反应慢又卡原因及解决办法推荐!
  3. 蹦球传说诺基亚java_bouncetales蹦球传说
  4. python实现阿里云域名绑定动态IP
  5. Geoserver怎样切割离线瓦片地图
  6. 若依管理系统源码分析-分页的实现以及post请求时的分页
  7. DevExpress的TreeList怎样设置数据源使其显示成单列树形结构
  8. 从实例入手学习Shiro的会话机制
  9. Windows上配置SSHKey到GItHub
  10. 一个独立测试组织工作的五大方面