Probleme dans l'ordre des commandes

Résolu
cs_satsuki Messages postés 10 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 1 décembre 2011 - 3 mars 2004 à 11:53
cs_satsuki Messages postés 10 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 1 décembre 2011 - 3 mars 2004 à 18:01
Bonjours,
deja merci à tous pour ce super site j'y trouve regulierement des reponces à mes questions, mais là, je suis completement bloqué.

j'ai dans une partie de mon code, besion de masquer des frames et d'en afficher une autre avant d'utiliser une fonction d'analyse fichiers derrière
=>
Private Sub analyse_Click()
labelanalyse.Caption = "Analyse en cours"
Frame13.Visible = False
Frame20.Visible = False
Frame14.Visible = False
Frame1.Visible = False
frame21.Visible = True
Call analyse
End Sub
mais probleme, quand je lance ce code l'analyse se lance sans avoir changé les frames , apres quelques secondes les frames "visible false" passent en fond gris clair et ma souris se met en "attente" (comme quand une application ne repond plus) puis à la fin de l'analyse en moins d'une secondes, j'ai les frames qui réagissent de la façon spécifée dans le code> je n'y comprend rien, VB n'est il pas censé attendre la fin des frame.visible pour lancer le call dans ce code ?

merci d'avance ++

4 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
3 mars 2004 à 16:09
Donc tu as une procédure nommée analyse, et un bouton nommé analyse ? C'est plutôt mauvais de mettre le même nom pour plusieurs procédure !

Enfin bon, si ta fonction analyse est longue, VB n'a peut-être pas le temps d'envoyer le message de rafraichissement de fenêtre à windows avant de faire appel à la fonction analyse, donc il faut mettre un DoEvents avant l'appel de la fonction analyse :

Private Sub analyse_Click()
labelanalyse.Caption = "Analyse en cours"
Frame13.Visible = False
Frame20.Visible = False
Frame14.Visible = False
Frame1.Visible = False
frame21.Visible = True
DoEvents
Call analyse

End Sub

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
3 mars 2004 à 12:12
Amon avis, cela vient du fait que tu fait un appel récursif de fonction : tu appelle ta fonction à l'intérieur de celle-ci. Et vu qu'il n'y a aucune clause d'échappement, tu as de la chance que ton prog ne plante tout simplement pas !

Enlève le Call analyse, ca devrait être mieux !

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
cs_satsuki Messages postés 10 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 1 décembre 2011
3 mars 2004 à 16:03
j'ai dus mal m'exprimer (desolé)

la fonction analyse appellée apres
labelanalyse.Caption = "Analyse en cours"
Frame13.Visible = False
Frame20.Visible = False
Frame14.Visible = False
Frame1.Visible = False
frame21.Visible = True

et pourtant les changements dans les frames n'interviennent que une fois que la fonction analyse a terminé son travail (la fonction analyse est lente car elle fait beaucoup d'opérations mais elle n'est en aucun cas une boucle infinit car elle se termine toujours de façon normale en me donnant les bon resultats)

=> pour resumer voila ce qui se passe
1)je clique sur analyse
2)ça analyse
3)ça me sort les resultats (la sortie des resultat est à la fin de la fonction analyse)
4)les changement interviennent dans les frames
=> voila ce que j'aimerai
1)je clique sur analyse
2)les changement interviennent dans les frames
3)ça analyse
4)ça me sort les resultats (la sortie des resultat est à la fin de la fonction analyse)

voila j'espère avoir été plus clair, merci néanmoins d'avoir essayer de m'aider ^^

++
0
cs_satsuki Messages postés 10 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 1 décembre 2011
3 mars 2004 à 18:01
C'est exactement la commande dont j'ai besoin , merci pour tout

++
0
Rejoignez-nous