Gif animés et DoEvents [Résolu]

Messages postés
21
Date d'inscription
samedi 28 mai 2005
Dernière intervention
13 juin 2006
- - Dernière réponse : cs_Obi_1
Messages postés
21
Date d'inscription
samedi 28 mai 2005
Dernière intervention
13 juin 2006
- 11 août 2005 à 16:29
Bonjour,

J'ai recherché de l'aide sur le forum sans trouver exactement ce que je cherchais...
Voilà les grandes lignes du problème: j'ai créé un formulaire d'attente dans une application VB6, qui contient un gif animé. Ce formulaire ne sert qu'à montrer à l'utilisateur que son PC n'a pas planté et que le programme n'a pas encore fini ses calculs. Le formulaire disparait lorsque le programme a fini de calculer et que l'attente est terminée.

J'ai utlisé un controle Internet Explorer (Scriplet) dans lequel j'ai inseré mon GIF (grace à une source que j'ai trouvé sur ce forum, d'ailleurs!). Seulement voilà: le GIF ne bouge pas! La seule solution qui a marché jusqu'à présent est d'inserer des "DoEvents" un peu partout dans le code...alors seulement le GIF s'anime. J'ai alors essayé avec un Timer dans le formulaire qui déclenche l'evenement DoEvents, mais ca ne marche pas...

Quelqu'un de plus expérimenté que moi aurait-il des idées??

Merci d'avance!!!
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
21
Date d'inscription
samedi 28 mai 2005
Dernière intervention
13 juin 2006
3
Merci
merci Dark Sidious, je commence à comprendre...Je pensais que le timer était déclenché à intervalle régulier, et ce même si le programme était en train de faire autre chose.

Je croyais que le programme se déroulait comme ca:
(mes boucles de calcul)(Timer)(continue les boucles)(Timer)(continue les boucles)(....

En fait, tu me dis que le programme se déroule de la facon suivante:
(mes boucles de calcul...mes boucles de calcul...)(Evenement Timer)

C'est bien ca?? Pour faire simple, je pensais que les evenements Timer étaient déclenchés de facon asynchrone alors qu'ils sont synchrones. Il y a moyen de déclencher des événements de facon asynchrone?

Merci beaucoup de ton aide!

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 89 internautes nous ont dit merci ce mois-ci

Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
22
0
Merci
Salut

Essaye





Autre solution ( gratos en plus ) qui marche à merveille et sans OCX.

Il existe une DLL qui s'appelle gif89.dll

1) la rechercher sur le net en utilisant http://www.filez.com' target='_blank'>http://www.filez.com

2) l'inclure dans ton projet ( ajouter composant )

3) et voilà !



(source google groups)
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
108
0
Merci
C'est tout simplement parce que ta boucle occupe tout le temps
processeur, et qu'il faut mettre des doevents à chaque tour de boucle
(ou moins si tu veux) pour que le prog puisse raffraîchir les contrôles.

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
Messages postés
21
Date d'inscription
samedi 28 mai 2005
Dernière intervention
13 juin 2006
0
Merci
Merci nhervgault, mais j'aimerais si possible limiter l'utilisation des dll...Tu connaitrais une autre méthode?

Dark Sidious, qu'est-ce que tu entends par "ma boucle occupe tout le temps processeur"? Mon timer a un intervalle de 500 (en ms, ou du moins j'espere...), je pensais donc qu'un rafraichissement de 2 fois par seconde était suffisant pour faire les boucles de calcul et mettre à jour le gif du formulaire...Apparemment non, mais je ne comprends pas. L'evenement Timer1_Timer est bien appelé 1 fois par intervalle? ou bien je n'ai rien compris aux timers (ce qui est très possible...)
Est-ce que je dois donc abandonner le timer et remettre les DoEvents dans le code-même des calculs?
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
108
0
Merci
Et bien si tu ne mets pas de DoEvents dans ta boucle, les événements de
raffraîchisement ainsi que les autres événements ne sont pas déclenchés
pendant la boucle, mais après, du coup, ton timer n'est déclenché qu'à
la fin de la boucle, et ne sert plus à rien !

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.