0

Delphi Prism で、Rectangle プロパティを左上または右下に設定しようとしていますが、コンパイラは、Rectangle のこれらのプロパティに値を設定するセッターが見つからないと言い続けています。

これに関連する他のスタックオーバーフローの質問を見てきましたが、良い答えが見つかりませんでした.

次のようなことができるようにするには、上、下、右、または左の値である Rectangle を設定できるようにしたいと考えています。

dragRect.right := dragRect.left;
dragRect.bottom := dragRect.top;

明らかに、これはできません。Delphi Prism で同じことをどのように達成しますか?

4

1 に答える 1

0

Hans Passantが指摘したように、値型と参照型の違いを理解することが重要です。System.Drawing.Rectangleには、左、上、右、または下のセッターがないため、値を設定することはできず、既に存在するものだけを読み取ることができます。それらが更新されるのは、実際にRectangleオブジェクトを作成して、高さ、幅、およびXYポイントを渡すか、長方形のプロパティのX、Y、高さ、および/または幅を設定するときだけです。

私のプログラムでは、長方形の形状を描画するための境界または領域を定義しようとしているだけなので、X、Y、幅、または高さを設定します。正常に動作します。長方形の幅と高さを把握する限り、長方形の幅と高さを一度設定する必要はありません。長方形のX値やY値をリセットするたびに、長方形の幅と高さが維持されます。したがって、それはその右と下の値が何であるかを知っています。

たとえば、次のことができます。

dragRect.X := 100;
dragRect.width := 10;

しかし、これを行うことはできません:

dragRect.left := 100;
dragRect.right :=110;
于 2011-09-30T16:18:50.863 に答える