
24.05.2013, 11:31
|
 |
Местный
|
|
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
|
|
Цитата:
Сообщение от kaktusad
нужно рисовать новый прямоугольник и стирать старый, но чтобы весь рисунок не перерисовывать, так как приложение подвисает.
|
Рисуй в режиме XOR:
Код:
type
TMainForm = class(TForm)
PaintBox1: TPaintBox;
procedure FormCreate(Sender: TObject);
procedure PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
FPrevX, FPrevY: Integer;
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
FPrevX := -1;
FPrevY := -1;
end;
procedure TMainForm.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
with TPaintBox(Sender).Canvas do
begin
with Brush do
begin
Color := clTeal;
Style := bsSolid;
end;
with Pen do
begin
Color := clYellow;
Mode := pmXor;
end;
if (FPrevX > 0) and (FPrevY > 0) then
Rectangle(FPrevX - 10, FPrevY - 8, FPrevX + 10, FPrevY + 8);
Rectangle(X - 10, Y - 8, X + 10, Y + 8);
end;
FPrevX := X;
FPrevY := Y;
end;
|