Was ist im Quellcode falsch?ich möchte der gleiche Effekt ohne Flackern<br>
<PRE>
procedure TForm1.image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
zaehler:=zaehler+1;
Drawing:=true;
image1.picture.bitmap.canvas.Pen.Mode:=pmnotXor;
if zaehler=1 then begin
canvas.Rectangle(Origin.x,Origin.y,Origin.x+100,Or igin.y+100);
canvas.Rectangle(0,0,100,100);
end
else begin
image1.picture.bitmap.canvas.Rectangle(movept.x,mo vept.y,movept.x+100,movept.y+100);
end;
MovePt:=Point(x,y);
Origin:=Point(X,Y );
end;
procedure TForm1.image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Drawing:=false;
image1.picture.bitmap.canvas.Rectangle(Origin.x,Or igin.y,Origin.x+100,Origin.y+100);
end;
procedure TForm1.image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if drawing then begin
image1.picture.bitmap.canvas.Pen.Mode:=pmnotXor;
image1.picture.bitmap.canvas.Rectangle(movept.x,mo vept.y,movept.x+100,movept.y+100);//erase old line
image1.picture.bitmap.canvas.Rectangle(x,y,x+100,y +100);
movePt:=point(x,y);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
zaehler:=0;
end;
</PRE>
<PRE>
procedure TForm1.image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
zaehler:=zaehler+1;
Drawing:=true;
image1.picture.bitmap.canvas.Pen.Mode:=pmnotXor;
if zaehler=1 then begin
canvas.Rectangle(Origin.x,Origin.y,Origin.x+100,Or igin.y+100);
canvas.Rectangle(0,0,100,100);
end
else begin
image1.picture.bitmap.canvas.Rectangle(movept.x,mo vept.y,movept.x+100,movept.y+100);
end;
MovePt:=Point(x,y);
Origin:=Point(X,Y );
end;
procedure TForm1.image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Drawing:=false;
image1.picture.bitmap.canvas.Rectangle(Origin.x,Or igin.y,Origin.x+100,Origin.y+100);
end;
procedure TForm1.image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if drawing then begin
image1.picture.bitmap.canvas.Pen.Mode:=pmnotXor;
image1.picture.bitmap.canvas.Rectangle(movept.x,mo vept.y,movept.x+100,movept.y+100);//erase old line
image1.picture.bitmap.canvas.Rectangle(x,y,x+100,y +100);
movePt:=point(x,y);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
zaehler:=0;
end;
</PRE>
Comment