Gambas France BETA


Pas de compte ? Incription

Fermer un module...

Ce sujet est résolu.

1
AuteurMessages
spheris#1 Posté le 14/10/2022 à 04:50:00
Bonjour,
La question peut paraitre étrange mais je suis confronté à un problème :

J'ai deux Form et un module dans un projet.
Le form principal de mon projet graphique contient un timer dans lequel je viens lire l'etat d'une variable booleenne dans mon module.
et j'ai ce code dans ma Form

1
2
3
PUBLIC SUB timer1_Timer()
Label1.visible = Module1.bled
END


et dans mon module :

1
PUBLIC bled AS Booleen

Le timer tourne mais lorsque je ferme ma fenetre et mon projet, l'application crash a cet endroit précis :


il s'arrête à la ligne '

1
Label1.visible = Module1.bled


et le message est bled : Objet invalide.

...comme si avant de fermer la Form il avait désintégré le module, qui n'existe plus dans le programme et donc dans la boucle du timer.

D'où ma question :
Existe-t-il une instruction pour enlever, arrêter, ajouter ou modifier le contenu d'un module?

La solution dans mon cas est d'arrêter le timer avant de fermer l'application.
valaquarus#2 Posté le 14/10/2022 à 12:28:09
-- Unus Ex Altera --Bonjour Spheris,
si form principal vient à être fermée le module est détruit et tout ce qu'il y a dedans. En inversant la chose, faire de ton ton module ce qui appelle ta form principal tu résous ce souci. Tu places
PUBLIC SUB timer1_Timer()
Label1.visible = Module1.bled
END
dans le module et normalement plus de soucis.
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5
linuxos#3 Posté le 20/10/2022 à 15:12:24
Un peu de sel, de poivre et la crevette sera... Bonjour,

Il existe toujours la bonne vielle méthode, à savoir tester si le module est valide ou non.
Sinon pourquoi pas arrêter le Timer (voir le détruire) avant de quitter, ce qui empèchera d'essayer d'attraper le module (valide ou pas)

1
2
3
IF object.isvalid(timer1) = TRUE THEN
...
END IF



1
2
3
TRY timer1.stop()
TRY timer1.Enable=FALSE
TRY timer1 = NULL


Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
1