Programme veut pas quitter sur XP

cs_cyriloo Messages postés 60 Date d'inscription dimanche 20 novembre 2005 Statut Membre Dernière intervention 12 septembre 2007 - 19 juil. 2007 à 16:31
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 23 juil. 2007 à 13:19
Salut!

Alors voici mon problème...

Lorsque je souhaite fermer mon prog ( Appui sur la croix ou Menu-Quitter) , il se ferme très bien sur windows 2000. Mais lorsque je suis sur XP, le programme ne se ferme pas toujours.J'ai installé VB sur un poste avec un OS en XP pour voir, et c'est très bizard car des fois tout se passe très bien, et d'autre fois lorsque l'on appui pour quitter, le prog ne rentre pas dans la fonction Unload() ou Query_Unload() !

Je ne pige pas du tout, d'ou ça peut venir.

Des idées?

5 réponses

hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
19 juil. 2007 à 17:33
Hummm... pour la non-fermeture est tu sur que tu n'as pas un traitement en cours?? (type une boucle while, ou un timer ? )

Pour le Unload() qui ne se déclenche pas, si c'est comme en dotnet, celui ci ne s'effetue seulement si tu ferme la form, si tu passe par ton menu "quitter", dans lequel je pense, tu appele simplement la méthode End, il est tout à fait normal que cet évenement ne se déclenche pas.

HvB a.k.a BaTo ^^x
http://chat.batto.info/ ^^'
http://batto.info/ 
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
19 juil. 2007 à 18:00
salut,

dans le menu Quitter, il faut Unload Me.
Concernant le End, il n'est à appeler que depuis l'évènement Load de la Form de démarrage de l'application.
Si tu 'sous-classes' (subclassing), pense à rendre le bon attribut avant fermeture avec SetWindowLong

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
19 juil. 2007 à 20:23
"...Concernant le End, il n'est à appeler que ..."

Normalement dans un programme bien conçu, il ne devrait pas etre besoin de l'appeler. l'instruction End provaque un arret brutal de l'application sans aucune précaussion ni avertissement. Il faut donc bien s'assurer avant de l'utiliser que l'application est dans un état "arrêtable". C'est à dire, que toutes les connections, quelque soit le type, soient fermée, que tous les fichiers soient enregistrés et fermés, que tous les objets explicitement créés, soient désactivés et déchargés (détruits).

Si ce n'est pas le cas, il se peut qu'un de ces objets empêche la fermeture.

L'idéal serait aussi d'arreter aussi tous les controles Timer utilisés sur les écrans.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
cs_cyriloo Messages postés 60 Date d'inscription dimanche 20 novembre 2005 Statut Membre Dernière intervention 12 septembre 2007
20 juil. 2007 à 07:56
Oké, je vais essayer de voir du coté des timers et des boucles.... merci ;)
0

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

Posez votre question
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
23 juil. 2007 à 13:19
Salut,

Affecter Nothing aux objets créés avec CreateObject peut peut être aider aussi.

Set objet = CreateObject("classe")
...
Set objet = Nothing
0
Rejoignez-nous