Einzelnen Beitrag anzeigen

Jarmen_Kell

Registriert seit: 17. Mär 2005
188 Beiträge
 
#4

Re: Canvas Rectangle mit MouseMove, MouseDown und MouseUp

  Alt 12. Aug 2005, 15:58
tada
Delphi-Quellcode:
var
  moused:TPoint;
  current:TPoint;

procedure TForm1.PaintBoxMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  moused.x:=x;
  moused.y:=y;
  current.x:=x;
  current.y:=y;
end;

procedure TForm1.PaintBoxMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer); // Alternativ ImageMouseMove o.ä.
begin
  if SSLeft in Shift then imgpaint(pmnotxor,current.X,current.Y);
  current.x:=x;
  current.y:=y;
  if SSLeft in Shift then imgpaint(pmnotxor,current.x,current.y);
end;

procedure TForm1.imgpaint(mode:TPenMode;x,y:Integer);
begin
  PaintBox.canvas.Pen.Mode:=mode; // Wieder Image.Canvas o.ä.
  PaintBox.Canvas.Rectangle(moused.x,moused.y,x,y);
end;
Hat den Vorteil, dass du auch noch ruckzuck andere Sachen wie Dreiecke, Rauten, Striche etc einfügen kannst.
  Mit Zitat antworten Zitat