procedure TForm1.Button1Click(Sender: TObject);
begin
with MYRGN do
begin
DC:=getdc(handle);
left:=100;right:=300;top:=100;bottom:=300;
width:=200;height:=200;
draw;
end;
end;
{ TMyRect }
procedure TMyRect.draw;
begin
RoundRect(DC,left,top,right,bottom,width,height);
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
subX,SubY:integer;
begin
if MB then
begin
subX:=X-MX;
subY:=Y-MY;
if X<=MYRGN.left then
begin
MYRGN.left:=x;
MYRGN.width:=MYRGN.width+subX;
end;
if X>=MYRGN.right then
begin
MYRGN.right:=x;
MYRGN.width:=MYRGN.width+subX;
end;
if Y<=MYRGN.top then
begin
MYRGN.top:=Y;
MYRGN.height:=MYRGN.height+subY;
end;
if Y>=MYRGN.bottom then
begin
MYRGN.bottom:=Y;
MYRGN.height:=MYRGN.height+subY;
end;
Canvas.Pen.Color:=color;
Canvas.Brush.Color:=color;
Canvas.FillRect(self.ClientRect);
MYRGN.draw;
MX:=X;
MY:=Y;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
MYRGN:=TMyRect.Create;
DoubleBuffered:=True;
end;