本例效果圖:
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.