1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   | procedure TForm1.MouseDown(Button: TMouseButton; Shift:TShiftState; X, Y:Integer);
begin
  P0.X:= X; {Initialise les points du rectangle}
  P0.Y:= Y;
  P1.X:= X;
  P1.Y:= Y;
  Canvas.Pen.Color:= clBlack;
  Canvas.Pen.Style:= psDot; {Pointillés}
  Canvas.Pen.Mode:= pmNotXor; {Traçage en mode XOR}
  Canvas.Rectangle(P0.X, P0.Y, P1.X, P1.Y); {Traçage initial}
end;
 
procedure TForm1.MouseMove(Shift: TShiftState; X, Y: Integer);
begin
  Canvas.Rectangle(P0.X, P0.Y, P1.X, P1.Y); {Efface le Rect précédent}
  Canvas.Rectangle(P0.X, P0.Y, X, Y); {Trace le nouveau}
  P1.X:= X;
  P1.Y:= Y
end;
 
procedure TForm1.MouseUp(Button: TMouseButton; Shift:TShiftState; X, Y:Integer);
begin
  Canvas.Rectangle(P0.X, P0.Y, P1.X, P1.Y); {Effaçage du rectangle}
  Canvas.Pen.Style:= psSolid; {Retour au mode de traçage ligne complète}
  Canvas.Pen.Mode:= pmCopy; {Retour au mode normal de traçage}
end; | 
Partager