1

Rect函数以两个单元声明:

System.Classes.Rect
System.Types.Rect

为什么会出现这种歧义?这些功能之一是否已弃用?应该首选哪一个?

4

2 回答 2

3

从文档中,System.Types.Rect为矩形的四个角取整数值;System.Classes.Rect另一方面,它还提供了一个需要两个TPoints 的重载 - 一个用于左上角,一个用于右下角。两者都返回 aTRect所以这实际上是您使用的选择问题。

后者更灵活(提供两个重载),因此最好确保在您的 uses 子句中包含Classesafter Types(如果同时使用两者),以免隐藏Classes.

于 2013-05-30T00:13:16.850 回答
3

如果您要Rect在紧密循环中调用(不执行 I/O 或类似操作),请考虑调用types.Rect,这才是classes.Rect真正的;它调用types.Rect(但你可能需要内联你自己的 Rect ......)。否则没关系,我不会费心在'uses'中包含'types'只是为了保存一个间接级别。

于 2013-05-30T00:23:14.020 回答