Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Delphi - programma paint mancato
Forum - Delphi - programma paint mancato "inchiostro"

Avatar
lucca (Normal User)
Pro


Messaggi: 84
Iscritto: 03/12/2009

Segnala al moderatore
Postato alle 16:24
Giovedì, 19/05/2011
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:
Codice sorgente - presumibilmente Delphi

  1. procedure TForm1.PMouseDown(Sender: TObject; Button: TMouseButton;
  2.   Shift: TShiftState; X, Y: Integer);
  3. begin
  4.   cliccato:=true;
  5.   p.OnMouseMove:=PMouseMove;
  6. end;
  7.  
  8. procedure TForm1.PMouseUp(Sender: TObject; Button: TMouseButton;
  9.   Shift: TShiftState; X, Y: Integer);
  10. begin
  11.   cliccato:=false;
  12. end;
  13.  
  14. procedure TForm1.PMouseMove(Sender: TObject; Shift: TShiftState; X,
  15.   Y: Integer);
  16. begin
  17.   if cliccato=true then
  18.     begin
  19.       p.Canvas.Pen.Color:=clBlack;
  20.       p.Canvas.Pen.Width:=3;
  21.       p.Canvas.Rectangle(x,y,x+2,y+2);
  22.     end;
  23. end;
  24. procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  25.   Y: Integer);
  26. begin
  27.    if cliccato=true then
  28.     begin
  29.       p.Canvas.Pen.Color:=clWhite;
  30.       p.Canvas.Pen.Width:=5;
  31.       p.Canvas.Rectangle(x,y,x+2,y+2);
  32.     end;
  33. end;



Come posso fare?????
grazie in anticipo ciao

PM
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Up
2
Down
V
Segnala al moderatore
Postato alle 12:27
Venerdì, 20/05/2011
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.

ecco adesso si che va grazie!!! - lucca - 22/05/11 14:18


Ibis redibis non morieris in bello
PM
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 21:21
Giovedì, 19/05/2011
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.

ok grazie - lucca - 20/05/11 09:54
PM