delphi - 如何在D7中比较两个TRect变量?

标签 delphi delphi-7

如何比较两个 TRect 类型的变量?

var
  r1, r1: TRect;
begin
  if (r1 = r2) then
    ...
end; 

通过上面的内容,我得到:不兼容的类型。

谢谢!

最佳答案

如果您有一个现代的 Delphi,那么该代码就可以编译并运行。现代 Delphi 版本中的 TRect 利用运算符重载来重载相等运算符。您根本无法在 Delphi 7 中使用该语法,因为 Delphi 记录没有内置的相等运算符。

如果没有编译器的帮助,您需要一个辅助函数。您可以自己编写:

function EqualRect(const r1, r2: TRect): Boolean;
begin  
  Result := (r1.Left=r2.Left) and (r1.Right=r2.Right) and
            (r1.Top=r2.Top) and (r1.Bottom=r2.Bottom);
end;

尽管如此,正如 @Sertac 指出的那样,当您可以使用 Windows API function of the same name 时,几乎不需要编写自己的 EqualRect .

关于delphi - 如何在D7中比较两个TRect变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11797069/

相关文章:

delphi - TDataSource TDBMemo 未处于插入或浏览模式

delphi - FireMonkey:如何在位图上绘制焦点矩形?

delphi - 如何说服内存管理器释放未使用的内存

delphi - 如何使用 Delphi 对字符串进行哈希处理?

delphi - 是否可以使用 VirtualStringTree 作为主细节 GridView ?

delphi 7 TImage 和 TImageList

delphi - TComboBox.AutoCloseUp 属性 : What does it do?

c - 如何在 delphi 中创建文件并将其传递给 C DLL 并在回调中使用该文件?

arrays - 如何检查是否单击了二维数组的任何按钮?

delphi - JVCL 2.10 和德尔福 2010