在Delphi Prism中,我试图设置Rectangle属性,左上角或右下角,编译器一直说它找不到一个setter来为Rectangle的这些属性设置一个值。
我已经查看了与此相关的其他stackoverflow问题,但没有找到一个好的答案。
我希望能够将Rectangle设置为top,bottom,right或left值,以便能够执行以下操作。
dragRect.right := dragRect.left;
dragRect.bottom := dragRect.top;
显然,你不能这样做。你如何在Delphi Prism中完成同样的工作?
答案 0 :(得分:0)
正如Hans Passant指出的那样,理解值类型和引用类型之间的区别非常重要。因为System.Drawing.Rectangle没有left,top,right或bottom的setter,所以你根本无法为它们设置任何值,只能读取已存在的值。 它们更新的唯一时间是实际创建Rectangle对象时传递高度,宽度和X-Y点或设置矩形属性的X,Y,高度和/或宽度。
因为在我的程序中我只是试图定义绘制矩形形状的边界或区域,所以我设置X,Y,宽度或高度。它工作正常。只要找出矩形的宽度和高度,就不必在设置宽度和高度一次之后。每次重置矩形的X和/或Y值时,它都会保持其宽度和高度。因此,它知道它的正确值和最低值是什么。
例如,你可以这样做:
dragRect.X := 100;
dragRect.width := 10;
但你不能这样做:
dragRect.left := 100;
dragRect.right :=110;