le 11-10-2016 04:17 AM
Bonjour,
Afin d'afficher des pop-up en asynchrone (sans bouton OK), je lance un sous-vi en asynchrone où j'ai mis mon message en face avant.
Le problème c'est que la FA qui s'affiche contient la barre de menu, le bouton démarrer etc. alors que j'ai bien paramétré mon sous-vi pour que la FA s'affiche à la manière d'une boîte de dialogue (propriétés du vi > apparence de la face-avant > boîte de dialogue).
Quelqu'un pourrait-il me dépanner ? merci d'avance...
Jean-Luc
le 11-10-2016 07:28 AM
Bonjour,
Si tu vois la barre de menu, c'est certainement que ton VI n'est pas en cours d'exéuction.
Es tu sur de bien lancer l'exécution du sous vi via ton appel dynamique, et pas uniquement faire afficher la face avant ?
Vérifie aussi que ton VI ne s'arrête pas prématurément, et que lors de son arrêt la face avant soit fermée.
Cdt,
Michael
le 11-10-2016 09:24 AM
Merci pour la réponse mais je lance bien mon vi.
Voici la capture de mon vi qui réalise le lancement en asynchrone.
le 11-10-2016 09:43 AM
D'accord sur ce point là.
Par contre es tu sur que celui-ci est en cours d'exécution lorsque tu fais apparaitre la face avant.
Si la flèche d'exécution est visible et "cliquable" cela veut dire que non.
Deux possibilités :
1- Le vi n'a pas réussi à démarrer -> Cabler les fils d'erreur de ton lancement dynamique, et récupérer un indicateur témoin d'un démarrage correct.
2- Le vi a bien démarré, mais c'est déjà arrêté -> Vérifier les conditions d'exécution et d'arrêt de ton sous vi.
le 11-11-2016 01:40 AM
En addition aux questions de Michael, es-tu en mode développement ou runtime ?
Cette question parce que l'Application Builder permet d'écraser la majorité des propriétés des VIs. Leur apparence en exécutable peut donc différer de celle en mode développement.
11-11-2016 04:29 AM - modifié 11-11-2016 04:30 AM
Oui effectivement le vi s'était arrêté de suite car je n'avais pas mis de boucle while dans le vi.
Ceci dit j'ai maintenant d'autres problèmes... Du coup j'ai remis mes messages en apparence de fenêtre classique pour le débuggage.
Voici mon main en PJ. J'appelle donc mon message, puis j'entre dans une boucle while avec un bouton stop, puis je ferme le message.
Mais le problème c'est que ma commande stop est inactive pendant que le message est affiché. Ce n'est que lorsque j'arrête à la main mon message (bouton "arrêter" de la barre d'outils) que l'appui sur "stop" du main est pris en compte.
C'est drôle car j'ai aussi essayé de lancer mon message en asynchrone via "démarrer un appel asynchrone" et là ça fonctionne bien. Je pensais pourtant que le noeud de méthode que j'avais utilisé "Exécuter" avait le même fonction. Ce n'est pas le cas ?
Jean-Luc
le 11-11-2016 05:39 AM
Autre info : il faut absolument que la fenêtre soit "flottante" et non "modale" (propriétés > Apparence fenêtre)
L'apparence "boîte de dialogue" ne l'est pas ! du coup les commandes de mon "main" ne pouvaient être actives.
le 11-14-2016 02:13 AM
Bonjour,
J'ai du mal à comprendre ta capture d'écran, mais si c'est ce que je pense, je dirais que ta stratégie n'est pas la bonne.
Pourquoi ne pas mettre le bouton d'acquitement /confirmation de lecture de ton message directement dans la fenetre de message ?
En pièce jointe, tu trouveras le code que j'utilise pour faire des messages utilisateurs avec les propriétés qui t'intéresse.
Cette fenêtre émet un bip et revient au premier plan toutes les 5 secondes --> Seul moyen pour que les opérateurs arrêtent de me dire "mince j'avais pas vu" .....
Tu vois une différence de comportement entre le lancement dynamique et le mode "sous-vi", car en lancement dynamique, ta fenêtre n'est pas considéré comme faisant parti du même thread que ton main, c'est pour cela que le statut "modal" devient transparent.
le 11-14-2016 02:15 AM
Je rajoute au passage la bibliothèque pour la gestion du passage au premier plan 😉
le 11-25-2016 11:56 AM
Désolé pour ma réponse tardive mais merci beaucoup.
En fait je voulais simplement afficher un message permanent sans bouton OK.
C'est dans le cas d'une mise en sécurité. Seule échappatoire dans mon application : tout quitter !