RectNotXor(Canvas,Img,nXPre,nYPre,nXCur,nYCur,nXini,nYini);
// 用 与非 pmNotXor 画矩形
procedure TForm3.RectNotXor(curCanvas : TCanvas ;Source : TControl;
nXPre,nYPre,nXCur,nYCur,nXini,nYini : integer);
begin
with curCanvas do begin
Pen.Style := psDashDot; //psSolid ;
Pen.Mode := pmNotXor;
Pen.Color := clRed;
Brush.Style := bsClear;
Rectangle(Source.Left + nXPre - nXini ,
Source.Top + nYPre - nYini ,
Source.Left + Source.Width + nXPre - nXini,
Source.Top + Source.Height + nYPre - nYini);
Rectangle(Source.Left + nXCur - nXini ,
Source.Top + nYCur - nYini ,
Source.Left + Source.Width + nXCur - nXini,
Source.Top + Source.Height + nYCur - nYini);
Brush.Style := bsSolid;
Pen.Mode := pmBlack;
end;
end;
上面的这个函数就实现了画矩形并清除前一位置的矩形的功能。
如果还有什么不明白的,放出你的eMail,我发一个demo给你