Question 15

Pourquoi quand je ferme mon programme, celui-ci est encore présent dans la liste des tâches ? Comment fermer proprement mon programme ?

Un programme Visual Basic se termine normalement lorsque tous les objets sont déchargés et qu'il n'y a plus de code à exécuter. Pour terminer correctement un programme il faut :

  • Détruire tous les objets créés en écrivant Set MonObjet = Nothing,
  • Décharger tous les formulaires à l'aide de l'instruction Unload,
  • Désactiver tous les timers actifs en écrivant Timer.Enabled = False, ceci afin d'éviter qu'ils n'enclenchent encore un évènement après la fermeture du formulaire conteneur.

Et pour être sûr de décharger totalement la mémoire, les paranos peuvent aussi :

  • Vider les variables "String" en écrivant varString = "",
  • Vider les variables "Variant" en écrivant varVariant = vbEmpty,
  • Détruire les tableaux en écrivant Erase Tableau ou Redim Tableau(0),

Les variables numériques n'ont pas besoin d'être déchargées.

Il ne faut en aucun cas utiliser l'instruction "End" car elle force l'arrêt du programme sans passer par les événements "Unload", "Query_Unload" et "Terminate" des feuilles et des modules de classe. De plus, elle ne détruit pas toujours les objets. Cette instruction peut être à la limite employée dans une routine de gestion d'erreurs lors d'erreurs graves.

Date de publication : 07 juillet 2002
Dernière modification : 16 septembre 2002
Rubriques : Généralités
Mots-clés : fermer, end, unload, liste des tâches