Shape + Timer illusion d'une balle qui rebondit [Résolu]

Signaler
Messages postés
5
Date d'inscription
jeudi 16 novembre 2000
Statut
Membre
Dernière intervention
19 mai 2005
-
Messages postés
5
Date d'inscription
jeudi 16 novembre 2000
Statut
Membre
Dernière intervention
19 mai 2005
-
Bonjour,

Pour un project Delphi je doit crée un Shape qui donne l illusion de
rebondire dans le formulaire a l'aide d'un Timer pour cela je doit
tirer un chiffre alleatoire avec les fonction Randomize et Random pour
changer la direction et la couleur de mon shape (Rond evidement). Mon
probleme est que je ne sais pas du tous quoi ecrir dans la procedure
Timer.



merci davance pour vos reponse.



OzZ

7 réponses

Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
4
Salut OzZ



Voilà ce que je te propose :



procedure TForm1.FormCreate(Sender: TObject);

begin

DoubleBuffered := True;

Randomize;

VarX := Random(50)-25;

VarY := Random(50)-25;

Timer1.Interval :=5;

Shape1.Brush.Color := random($1000000);

Shape1.Pen.Color := Shape1.Brush.Color;

end ;



procedure TForm1.Timer1Timer(Sender: TObject);

begin

Shape1.Left : = Round(Shape1.Left + VarX);

Shape1.Top := Round(Shape1.Top + VarY);

if (Shape1.left<0) or (Shape1.left > ClientWidth-Shape1.Width) then

VarX : =-VarX;

if (Shape1.Top<0) or (Shape1.Top > ClientHeight-Shape1.Height) then

VarY := -VarY;

end ;

J'espère avoir une bonne note !



Ken@vo

<hr size ="2" width="100%">Code, Code, Codec !

[%3C/body ]
Messages postés
5
Date d'inscription
jeudi 16 novembre 2000
Statut
Membre
Dernière intervention
19 mai 2005

merci beaucoup mais au risque de paraitre pour un gros nul:) je vien de rentré ton code mais rien ne bouge :s
Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
8
Il ont des "Shapes ronds", vive la Bretagne, mdr, Kenavo...



Tu l'as rentré où le code, ozzdu38



Si tu es vraiment très débutant, voici ce qu'il faut faire avec l'inspecteur d'objets :



- double clique sur OnCreate pour Form1, et entre le code correspondant à FormCreate,

- double clique sur OnTimer pour Timer1, et là tu places le code correspondant à Timer1OnTimer.



Rien d'autre à faire que de lancer la compilation.



Bonne prog'



japee
Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
2
Faut vérifier que la propriété enabled du timer à la valeur TRUE dans l'inspecteur d'objet ou bien tu rajoutes dans l'événement OnCreate du Form1 :

Timer1.Enabled := TRUE ;

Cordialement.
Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
8
Oui, on ne sait jamais, WhiteHippo...



Mais je me dois de préciser à ozzdu38 que Enabled := True est la propriété par défaut .

Il lui suffit de faire Nouveau =>Application, de déposer un chapeau
rond heu... un Shape rond et un Timer tout neuf sur son Form, de
rentrer le code à Kenavo comme je le lui explique, et... il n'a plus
qu'à essayer de suivre la baballe des yeux, lol.

Évidemment, s'il se met à tout tripoter avant même d'avoir testé, alors...



Bonne prog'



japee
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
4
On
peut aussi vérifier que les variables de déplacement (VarX et VarY) ne
sont pas nulles, mais les deux nulles en même temps ..... ça serait pas
de bol !



Et danse le Shape rond (vivent les bretons !)



Ken@vo

<hr size="2" width="100%">Code, Code, Codec !




http://www.pourflorenceethussein.org/

[%3C/body ]
Messages postés
5
Date d'inscription
jeudi 16 novembre 2000
Statut
Membre
Dernière intervention
19 mai 2005

c'est bon tous marche bien en fait javais juste fair une petiote erreur de declaration des VarX et VarY dans le main

tous marche bien merci tous le monde pour votre aide et merci kenavo pour ton code :)