本例效果图:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} {定义两个矩形常量} const R1: TRect = (Left:20; Top:30; Right:160; Bottom:100); R2: TRect = (Left:100; Top:10; Right:180; Bottom:120); {初始化按钮显示} procedure TForm1.FormCreate(Sender: TObject); begin Button1.Caption := '两个原始矩形'; Button2.Caption := '相交'; Button3.Caption := '减去'; Button4.Caption := '联合'; end; {画出两个原始矩形} procedure TForm1.Button1Click(Sender: TObject); begin Refresh; Canvas.Brush.Color := clOlive; Canvas.Rectangle(R2); Canvas.Brush.Color := clBlue; Canvas.Rectangle(R1); end; {相交: IntersectRect} procedure TForm1.Button2Click(Sender: TObject); var R: TRect; begin Refresh; IntersectRect(R, R1, R2); Canvas.Brush.Color := clRed; Canvas.Rectangle(R); end; {减去: SubtractRect} procedure TForm1.Button3Click(Sender: TObject); var R: TRect; begin Refresh; SubtractRect(R, R1, R2); Canvas.Brush.Color := clRed; Canvas.Rectangle(R); end; {联合: UnionRect} procedure TForm1.Button4Click(Sender: TObject); var R: TRect; begin Refresh; UnionRect(R, R1, R2); Canvas.Brush.Color := clRed; Canvas.Rectangle(R); end; end.