TRectタイプの2つの変数を比較するにはどうすればよいですか?
var
r1, r1: TRect;
begin
if (r1 = r2) then
...
end;
上記で私は得ます:互換性のないタイプ。
ありがとう!
最新の Delphi を使用している場合、そのコードはコンパイルして機能します。最新のTRect
Delphi バージョンでは、演算子のオーバーロードを利用して等値演算子をオーバーロードしています。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 関数をEqualRect
使用できる場合は、独自に記述する必要はほとんどありません。