{ 在网上看到个这个例子感觉还不错,将它移到自己的博客里没事的时候看看; TRect 作用:保存一个矩形的左上角和右下角的坐标值; 声明: type TRect = packed record case integer of 0:(Left, Top, Right, Botton:Integer); 1:(TopLeft, BottonRight:TPoint); end; 由上面的TRect可知,TRect是一个记录类型(TRect),保存了矩形的左上角右下角两个点,4个坐标 或2个点的值。 这个声明是Record类型使用Case子句的典型的例子。 当我们通TopLeft和BottonRight两个点创建矩形时,可以传递两个TPoint值或用Point函数产生他们; } unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class (TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end ; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1 . Button1Click(Sender: TObject); var rectangle1, rectangle2:TRect; begin //用Rectangle来手工设置一个矩形; Rectangle1 . Left := 0 ; rectangle1 . Top := 0 ; rectangle1 . Right := 40 ; rectangle1 . Bottom := 60 ; //再用Rect函数设置第二个矩形; Rectangle2 := Rect(Point( 20 , 40 ), Point( 60 , 80 )); //显示每个矩形的左上角和左下角的坐标 ShowMessageFmt( 'Rectangle 1 coords = %d, %d, %d, %d' , [rectangle1 . left, rectangle1 . top, rectangle1 . Right, rectangle1 . Bottom]); ShowMessageFmt( 'Rectangle 2 coords = %d, %d, %d, %d' , [rectangle2 . Left, rectangle2 . Top, rectangle2 . Right, rectangle2 . Bottom]); end ; end . |