0

在Delphi Prism中,我试图设置矩形属性,左上或下,编译器一直说它找不到设置器来为矩形的这些属性设置值。

我查看了与此相关的其他 stackoverflow 问题,但没有找到好的答案。

我希望能够将 Rectangle 设置为顶部、底部、右侧或左侧值,以便能够执行以下操作。

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

显然,你不能这样做。你如何在 Delphi Prism 中完成同样的事情?

4

1 回答 1

0

正如 Hans Passant 所指出的,理解值类型和引用类型之间的区别很重要。因为 System.Drawing.Rectangle 没有左侧、顶部、右侧或底部的设置器,所以您根本无法为它们设置任何值,而只能读取已经存在的内容。它们更新的唯一时间是当您实际创建传递高度、宽度和 XY 点的 Rectangle 对象或设置矩形属性的 X、Y、高度和/或宽度时。

因为在我的程序中我只是想定义绘制矩形形状的边界或区域,所以我设置了 X、Y、宽度或高度。它工作正常。就计算出矩形的宽度和高度而言,您不必一次设置其宽度和高度。每次重置矩形的 X 和/或 Y 值时,它都会保持其宽度和高度。因此,它知道它的右值和底值是什么。

例如,您可以这样做:

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

但你不能这样做:

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