damomospike
Messages postés25Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention19 janvier 2005
-
11 janv. 2005 à 23:08
cs_TkILLA
Messages postés31Date d'inscriptionjeudi 8 avril 2004StatutMembreDernière intervention16 mars 2005
-
24 janv. 2005 à 00:00
tout d'abord bonjour à tous!
voila, j'essaye de faire un petit programme pour "dessiner" comme sous paint pour ensuite l'intégrer dans un autre programe.
le programe marche mais lorsque que je dessine sur un Timage pas directement sur la form, des espèce de lignes parasites apparaissent lorsque ma suiris bouge (lorsque je dessine) comme si il y avait un probleme de rafraichisment.
mon code est:
procedure TForm1.i1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
form1.i1.Canvas.LineTo(p1.X-form1.Left-1.left-5,p1.Y-form1.Top-i1.top-30);
end;
(le code n'est pas entier, p1 est un Tpoint et i1 et un Timage)
que dois-je faire pour supprimer ce probleme de lignes (de la couleur de la form)
(escusez moi pour ces informations mal exprimées).
cs_sim51
Messages postés240Date d'inscriptiondimanche 31 octobre 2004StatutMembreDernière intervention31 décembre 20062 12 janv. 2005 à 09:24
Je pense que cela vient d'une des propriétés de ton Timage. Il faut que
tu mette le valeur false à la propriété incrementalDisplay (elle permet
de rafraichir l'image lorsqu'une opération n'est pas terminée). J'ai eu
ce problème et je l'ai réglé comme sa.
Dis moi si c'est ça, car cela peut venir d'ailleur, et j'ai d'autres idées, mais celle-ci est la plus vraissemblable.
Si cela ne vient pas de là peut tu donner le code en entier de ta procédure.
procedure TForm1.i1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if pact = true then begin
form1.i1.Canvas.LineTo(p1.X-form1.Left-i1.Left-5,p1.Y-form1.Top-i1.Top-30);
getcursorpos(p1);
end;
end;
de plus je but sur un truc tout con: pour n'importe quel canvas, une fois que l'on a utilisé une fonction comme LineTo, comment fait ton pour retrouver un canvas vierge, tou effacer en gros?.
cs_TkILLA
Messages postés31Date d'inscriptionjeudi 8 avril 2004StatutMembreDernière intervention16 mars 2005 24 janv. 2005 à 00:00
Salut,
a propos de la remarque de Sim51 : j'utilise un buffer Tbitmap pour dessiner, mais le rafraichissement n'est pas assez rapide :
Au premier clic, je stocke les coordonnées de mon point de départ.
OnMouseMove : j'efface le buffer, je dessine la ligne de mon point de départ jusqu'à la position du curseur de la souris, puis je copie le buffer dans mon Timage. Image1.draw(0,0,buffer);
et au deuxième clic je trace mon trait.
Mon probleme est que le rafraichissement n'est pas assez rapide, ca fait comme la trainée du curseur dans windows ..