Graphique

Résolu
thr_dreamer_57 Messages postés 44 Date d'inscription lundi 27 juin 2005 Statut Membre Dernière intervention 3 novembre 2008 - 7 avril 2007 à 17:39
LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 - 30 avril 2007 à 22:07
Salut tout le monde,
    je suis sur le point de réaliser une application dans laquel j'ai besoin d'intégrer une zone graphique qui décrit le fonctionnement du système. Ci après je vais expliquer le but souhaité, ce que j'ai trouvé comme solution et mes questions à propos de manipulations de quelques contrôles.
    L'interface doit décrire le fonctionnement d'une chaine industrielles :
        - l'arrivée de bouteils sur une tapie roulante,
        - le traitement de bouteils par une station de lavage,
        - le passage des bouteils lavés sur une autre tapie vers un robot .... (etc)

   A première vue, j'ai décider d'utiliser image que j'introduit dans un Graphic exemple dans le cas des bouteils j'introduit des l'image d'une bouteil à une position donnée ensuite je change la position afin de créer l'annimation,

   Question :
       - je voudrais savoir comment utiliser un picture box (les déclarer, leur affecter des images et comment les déplacer),
       - comment ralentir (faire un delay) pour pouvoir créer l'annimation vu que cette boucle :
            for(int i=0;i<5;i++)
                 g.drawimage(image,i+30,30);
           affiche l'image directement à l dernière position donc j'ai voulu faire un delay (un wait),
     - j'ai besoin de faire appel à une annimation gif  (car avec flash je me suis casser la tête des journées entière et j'ai pas trouvé la réponse) donc est ce que quelqu'un pourrai m'expliquer comment integrer un gif dans la form et comment le démarrer l'arréter le manipuler quoi :).

Merci d'avance,

10 réponses

LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 8
9 avril 2007 à 13:55
Salut, je t'es mis un exemple ici
J'espère que ça t'éclairera...

Je reste dispo ;)
3
LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 8
7 avril 2007 à 21:53
Salut dreamer...

Voilà ce que je te conseille :


Tu dérives d'un Panel (par exemple) et tu lui ajoutes une méthode du
genre UpdateBitmap() dans laquelle tu dessines l'état de ton animation
dans un Bitmap, style :
privateBitmap _bufferAnimation;


Dans l'évènement OnPaint du contrôle, tu dessines ton image :
if( _bufferAnimation != null )

    e.Graphics.DrawImage( _bufferAnimation, 0, 0 );


Et à chaque fois que tu dois mettre à jour ton animation, tu fais appel à UpdateBitmap()

Puis tu redessine ton contrôle : Invalidate( true );


N'hésites pas si tu as besoin de détails...
0
thr_dreamer_57 Messages postés 44 Date d'inscription lundi 27 juin 2005 Statut Membre Dernière intervention 3 novembre 2008
8 avril 2007 à 10:55
Merci LUDINSKI je vais essayer ce truk et je vous tiendrez au courant ;).
0
thr_dreamer_57 Messages postés 44 Date d'inscription lundi 27 juin 2005 Statut Membre Dernière intervention 3 novembre 2008
9 avril 2007 à 00:00
Salut,


j'ai encore eu des difficultés à faire annimer mon image à chaque fois que j'utilise drawImage l'image précédente reste affichée (superposition des images) et j'ai pas bien saisi l'utilisté du _bufferAnimation et comment utiliser UpdateBitmap donc svp LUDINSKI si vous vouliez bien détailler un petit exemple d'annimation d'une image ( que ce soit l'image est déja insérée dans un picturebox ou bien qu'on la redessine chaque fois avec DrawImage) moi j'ai pensé dessiner l'image un première fois ensuite faire un delay ensuite la redessiner avec drawimage avec un décalage selon l'annimation souhaité est ce possible ?. Sinon j'espère que je ne me montrerai pas trop gourmant en demandant si qulqu'un a une idée sur la manipulation des annimations .gif ou .swf ça sera un grand service.


PS: j'enverrai le code de mon application commenté après avoir résolu tt les problèmes.


Merci d'avance. D57
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
9 avril 2007 à 01:51
Salut, pour avoir un "delay" entre chaque frames.. soit tu utilises la classe System.Windows.Timer qui permet d'appeler une méthode à intervalles reguliers et donc de dessiner tes frames dans cette méthode. Soit, plus compliqué, en utilisant l'heure du sytème dans une boucle infini.. ( un peu long à expliquer ).

Les gifs s'animent tous seuls dans une PictureBox ou alors avec la classe ImageAnimator comme je le fais ici :

http://www.csharpfr.com/infomsg_GIF-TROP-LENT_625594.aspx
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
9 avril 2007 à 14:04
Ton exemple risque de lui etre fort utile Ludinski :)

Mx
MVP C# 
0
LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 8
9 avril 2007 à 14:09
Salut MorpionMx,

Juste pour me rassurer...
Tu dis ça ironiquement ?

Sinon, merci ^^ je fais c'que je peux... J'adore ce site
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
9 avril 2007 à 14:12
Absolument pas ironique. Le code est clair et sans erreur, avec juste ce qu'il faut dedans

Mx
MVP C# 
0
Angelsoul Messages postés 2 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 29 avril 2008
30 avril 2007 à 11:49
bête question mais comment puis-je modifier ton code pour l'utiliser avec d'autres images bmp car j'ai toujours une erreur "Value of 'null' is not valid for 'stream' "

Merci d'avance
0
LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 8
30 avril 2007 à 22:07
Tu dois incorporer ton image au projet...
Donc, tu dois aller dans les propriétés de l'image, une fois que tu l'as rajouté dans le projet.
0
Rejoignez-nous