Il ne faut pas utiliser Ouvre(départ) dans ce cas. La fonction Ouvre de windev ouvre une fenêtre en modal, ce qui signifie, que l'on ouvre la fenêtre et que l'on attend qu'elle soit fermée pour exécuter la suite du code. Du coup dans l'exemple précédent, la fonction Ferme() n'est appelé que lorsque la fenêtre Départ est elle même fermé.
Il faut donc faire
1 2
| OuvreSoeur(départ)
Ferme() |
La fonction OuvreSoeur() est non modale, donc non bloquante, la ligne Ferme() est donc exécuté juste après et va ferme la fenêtre.
Autre solution, masquer la fenêtre de saisie du code et lancer l'ouverture de la suivante.
J'ai eu pas mal de soucis concernant le flux du code exécuté lors des ouvertures/fermetures de fenêtres sous Windev.
Autre solution, la fonction Utilise() permet d'ouvrir une fenêtre en fermant toutes les autres, mais il faut faire attention, l’évènement SurFermeture des fenêtres fermées n'est pas exécutés dans ce cas là.
Dernière solution, qui reste d'après moi la plus propre, est de gérer les ouvertures/fermetures de fenêtres par un code qui ne soit pas dans une fenêtre.
Partager