Ver Mensaje Individual
  #2  
Antiguo 14-03-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 18.286
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Bueno, no es complicado, se trata de jugar con los eventos del Mouse.
Define en la parte privada un par de variables como éstas:

Código Delphi [-]
     _Painting:Boolean;  // Para marcar cuando estamos pintando
     _origen:TPoint;      // punto origen de la línea

Y en los eventos del Mouse del PintBox lo siguiente:

Código Delphi [-]
 procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
   Shift: TShiftState; X, Y: Integer);
 begin
 
   _Painting := True;
   _origen.X := x;
   _origen.Y := Y;
 
 end;
 
 procedure TForm1.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
   Shift: TShiftState; X, Y: Integer);
 begin
   _Painting:= False;
 
   PaintBox1.Canvas.Pen.Width := 2;
   PaintBox1.Canvas.Pen.Color := clRed;
   PaintBox1.Canvas.MoveTo(_origen.X, _origen.Y);    (*1*)
   PaintBox1.Canvas.LineTo(x,y);                (*1*)
 
 end;
 
 procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);
 begin
   // Si se debe pintar...
   if _Painting then begin
     // Borrar
     PaintBox1.Canvas.FillRect(Self.PaintBox1.ClientRect);
     // pintar
     PaintBox1.Canvas.Pen.Color := clRed;
     Canvas.Polyline([Point(_origen.X, _origen.Y), Point(x,y)]);   (*2*)
   end;
 end;

Para distinguir entre un botón y otro del mouse, verás que exixte un parámetro Button: TMouseButton que te da esa información.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 19-07-2006 a las 10:24:31.
Responder Con Cita