如何比较TRect类型的两个变量?
var
r1, r1: TRect;
begin
if (r1 = r2) then
...
end;
上面我得到:不兼容的类型。
谢谢!
答案 0 :(得分:10)
如果你有一个现代的Delphi,那么该代码将编译和工作。现代Delphi版本中的TRect
利用运算符重载来重载等于运算符。由于Delphi记录没有内置的等式运算符,因此您无法在Delphi 7中使该语法有效。
如果没有编译器的帮助,您需要一个辅助函数。你可以写自己的:
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
。