Form qui refuse de disparaître après END

Signaler
Messages postés
5
Date d'inscription
samedi 18 mars 2006
Statut
Membre
Dernière intervention
17 décembre 2006
-
Messages postés
5
Date d'inscription
samedi 18 mars 2006
Statut
Membre
Dernière intervention
17 décembre 2006
-
Bonjour,
J'ai mis, en vb6, une instruction qui provoque la fin du programme: du style : if <condition> then END.
Tout va bien sauf si je compile.
Avec l'EXE le programme s'interrompt mais la form reste affichée et doit être fermée à la croix.
Elle ne contient plus de données mais les boutons, les listbox... réagissent à la souris.
Comme la source fonctionne correctement, difficile de debuguer ! J'ai essayé Unload avant End sans résultat.
Quelqu'un peut-il m'aider à faire disparaître cette form envahissante ? Merci !

6 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Plusieurs possibilités :
- Arretes-tu les timers avant le End
- Fais-tu appel à un controle de la form dans le unload de cette form ou d'un autre
- Détruits -tu tous les objets que tu as créer dynamiquement
- .............

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

perso, je me souviens pas d'avoir utilisé l'instruction End dans mes dev, je mets toutes mes instructions de cloture dans Sub Form_Unload, (comme le précise Casy, je détruits les objets, autres Form, etc..)

Et pour fermer l'exe : Unload Me
(tout ça depuis la fenêtre (Form) principale)

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
Messages postés
5
Date d'inscription
samedi 18 mars 2006
Statut
Membre
Dernière intervention
17 décembre 2006

Merci pour ton aide mais je n'y arrive toujours pas.
Depuis longtemps j'utilise End sans problème.
D'ailleurs là je n'ai aucun problème tant que ne compile pas !
Mais ce n'est pas très bloquant, je dois juste fermer derrière à la croix.
J'ai quand-même essayé ta solution avec Unload Form mais c'est pareil.
Messages postés
5
Date d'inscription
samedi 18 mars 2006
Statut
Membre
Dernière intervention
17 décembre 2006

Merci pour ta réponse!
- Je n'ai pas lancé de timer
- J'avais une instruction dans le Unload (un msgbox pour demander "enregistrer ? oui/non") mais j'ai essayé en l'enlevant : pareil
- Je n'ai pas créé d'objet dynamiquement.
Ce que je n'arrive pas à comprendre c'est que la form persiste uniquement quand j'utilise le programme COMPILE.
Quand je teste mon code avant de compiler tout est ok!
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Dans le Module de code de ta Form Principale, mets ça :

Sub SafeEnd()
    While Forms.Count
        Unload Forms(0)
        DoEvents
    Wend
End Sub

Puis au Unload, fait un Call SafeEnd

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
Messages postés
5
Date d'inscription
samedi 18 mars 2006
Statut
Membre
Dernière intervention
17 décembre 2006

Désolé, Mortalino, mais c'est toujours pareil.
J'ai un autre End à un autre endroit dans mon programme, qui fonctionne très bien.
Celui-ci: rien à faire! Et uniquement après compilation, parce qu'en code tour est ok.
Et si le problème venait de Windows?
Enfin, ne vous cassez pas la tête, je trouverai bien un contournement.
Merci pour votre aide.