Deplacment objets clignotement ?????

Résolu
bilou2000 Messages postés 30 Date d'inscription lundi 10 novembre 2003 Statut Membre Dernière intervention 15 mars 2005 - 13 févr. 2005 à 17:41
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 - 13 févr. 2005 à 19:07
Bonjour à tous.


<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />


J’ai un souci sur ma form j’ai un dbimage quand je click dessus je voudrai que l’image se déplace vers un Timage.


Voilà comment je procede lorsqu’on click je copie l’image dans le clipboard, puis je le copie dans in timage intermediare qui est lui même dans une autre form ceci afin d’avoir toujours l’image au dessus de n’importe quels composant.


Seulement l’image clignote tout le temps.


Y a t’il d’autre solution.


Voici mon code :





//--------------------------------------------------------


// procedure de tracage de droite


//--------------------------------------------------------


{ on entre x1,y1 point de départ, on entre x2,y2 point d'arrivé


la couleur et on affiche}





procedure Droite; //(x1, y1, x2, y2, Couleur: integer);


var


x1, y1, x2, y2, x, y, Dx, Dy, Xi, Yi, Erreur, i, J: integer;


begin





X1 := 63; // coordonée de départ


y1 := 72; // coordonnée de départ


x2 := (form1.SecretPanel1.Left + form1.Image1.Left); // coordonnées


y2 := (form1.secretpanel1.Top + form1.image1.Top); // d'arrivé


couleur := clred;


//initialiser les variables


Dx := abs(x2 - x1);


Dy := abs(y2 - y1);





if x1 < x2


then


Xi := 1


else


Xi := -1;





if y1 < y2


then


Yi := 1


else


Yi := -1;





//tracé de ligne


x := x1;


y := y1;


form1.Canvas.MoveTo(x1, y1);


if Dx > Dy


then


begin


Erreur := Dx div 2; //plus joli et pas cher en calcul


for i := 0 to Dx - 1 do


begin


x := x + Xi;


Erreur := Erreur + Dy;


if Erreur > Dx


then


begin


Erreur := Erreur - Dx;


y := y + Yi;


end;


form2.Top := y; // coordonnées du déplacement


form2.Left := x;


for j := 1 to 100 do


application.ProcessMessages;


form2.show;


end;


end


else


begin


form1.Canvas.MoveTo(x1, y1);


Erreur := Dy div 2; //plus joli et pas cher en calcul


for i := 0 to Dy - 1 do


begin


y := y + Yi;


Erreur := erreur + Dx;


if Erreur > Dy


then


begin


Erreur := Erreur - Dy;


x := x + Xi;


end;


form2.Top := y; // coordonnées du déplacement


form2.Left := x;





for j := 1 to 100 do


application.ProcessMessages;


form2.show;


end;


end;


end;

1 réponse

ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
13 févr. 2005 à 19:07
procedure TForm1.FormCreate(Sender: TObject);
begin
DoubleBuffered := true;
end;
Ca devrait marcher


@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
3
Rejoignez-nous