Oppure

Loading
19/05/11 14:24
lucca
ciao a tutti sto facendo paint ma quando tengo premuto il mouse e lo trascino molto velocemente non mi colora la parte dove passo veloce. Vi posto il codice:
procedure TForm1.PMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  cliccato:=true;
  p.OnMouseMove:=PMouseMove;
end;

procedure TForm1.PMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  cliccato:=false;
end;

procedure TForm1.PMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if cliccato=true then
    begin
      p.Canvas.Pen.Color:=clBlack;
      p.Canvas.Pen.Width:=3;
      p.Canvas.Rectangle(x,y,x+2,y+2);
    end;
end;
procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
   if cliccato=true then
    begin
      p.Canvas.Pen.Color:=clWhite;
      p.Canvas.Pen.Width:=5;
      p.Canvas.Rectangle(x,y,x+2,y+2);
    end;
end;


Come posso fare?????
grazie in anticipo ciao
aaa
19/05/11 19:21
Poggi Marco
Ciao!

Se non ho capito male, tu disegni un rettangolino in corrispondenza della posizione del mouse.
in alternativa si può memorizzare la posizione del mouse, al fine di designare un segmento tra due posizionamenti successivi.
aaa
20/05/11 10:27
Goblin
infatti ... come dice marco ...
nell'evento PMouseDown setti il punto iniziale
P.Canvas.MoveTo(x,y);

e in PmouseMove sostituisci
p.Canvas.Rectangle(x,y,x+2,y+2);
con
P.Canvas.LineTo(x,y);

non dovrebbe più darti l'effetto "spray"
G.
Ibis redibis non morieris in bello