OVH Cloud OVH Cloud

[WD8] Popup buggé?

4 réponses
Avatar
Phil
Bonjour,

Un simple bouton [...] lance une fenêtre Popup contenant une table fichier.
Double clic sur une ligne et le code du client est retourné en paramètre à
la fenêtre précédente.

Tout fonctionne à merveille, SAUF si on clique à nouveau sur le bouton de
lancement [...] pendant que le popup est ouvert. Windev semble alors prendre
le contrôle et ferme la fenêtre sans que j'ai la chance de retourner une
valeur. Alors ça plante et me dit que la valeur est attendue, etc...

Popup() ou PopupPosition() donnent les mêmes résultats.

J'ai beau essayer de désactiver la fenêtre ou le bouton de lancement pour
empêcher l'usager de cliquer sur [...] pendant que le popup est actif, rien
n'y fait. Normalement, je ne devrais pas avoir à le faire - windev devrait
empêcher qu'on puisse accéder à la fenêtre ou le bouton de lancement.

Par exemple, windev ne tiens pas compte du code ci-dessous;

FenRechCltSimple..Etat=Inactif
SaisieCodeClient=OuvrePopupPosition(PopBrowseClts,poBas,"")
FenRechCltSimple..Etat=Actif

ou encore ;

MonBouton..Etat=Inactif
SaisieCodeClient=OuvrePopup(PopBrowseClts,"")
MonBouton..Etat=Actif

Quelqu'un a une bonne idée?

Cordialement,

Réal Phil

4 réponses

Avatar
Michel
Le comportement normal d'une fenetre popup est de se fermer si elle perd
le focus. (voir Doc)

Si ce comportement ne convient pas, il faut utiliser Ouvre() ou
OuvreFille() et effectuer la fermeture de la fenetre apres le traitement
du double clic.

Michel


Phil a écrit :
Bonjour,

Un simple bouton [...] lance une fenêtre Popup contenant une table fichier.
Double clic sur une ligne et le code du client est retourné en paramètre à
la fenêtre précédente.

Tout fonctionne à merveille, SAUF si on clique à nouveau sur le bouton de
lancement [...] pendant que le popup est ouvert. Windev semble alors prendre
le contrôle et ferme la fenêtre sans que j'ai la chance de retourner une
valeur. Alors ça plante et me dit que la valeur est attendue, etc...

Popup() ou PopupPosition() donnent les mêmes résultats.

J'ai beau essayer de désactiver la fenêtre ou le bouton de lancement pour
empêcher l'usager de cliquer sur [...] pendant que le popup est actif, rien
n'y fait. Normalement, je ne devrais pas avoir à le faire - windev devrait
empêcher qu'on puisse accéder à la fenêtre ou le bouton de lancement.

Par exemple, windev ne tiens pas compte du code ci-dessous;

FenRechCltSimple..Etat=Inactif
SaisieCodeClient=OuvrePopupPosition(PopBrowseClts,poBas,"")
FenRechCltSimple..Etat¬tif

ou encore ;

MonBouton..Etat=Inactif
SaisieCodeClient=OuvrePopup(PopBrowseClts,"")
MonBouton..Etat¬tif

Quelqu'un a une bonne idée?

Cordialement,

Réal Phil




Avatar
Byky
Si tu veux que ta popup renvoie une valeur à tous les coups, il faut
initialiser une valeur de retour par défaut dés l'ouverture de la popup.

Par exemple, dans le code de déclaration de ta popup, tu codes :

MaFenêtre..ValeurRenvoyée=<TaValeurParDéfaut>


"Phil" a écrit dans le message de
news:cMuvd.30054$
Bonjour,

Un simple bouton [...] lance une fenêtre Popup contenant une table


fichier.
Double clic sur une ligne et le code du client est retourné en paramètre à
la fenêtre précédente.

Tout fonctionne à merveille, SAUF si on clique à nouveau sur le bouton de
lancement [...] pendant que le popup est ouvert. Windev semble alors


prendre
le contrôle et ferme la fenêtre sans que j'ai la chance de retourner une
valeur. Alors ça plante et me dit que la valeur est attendue, etc...

Popup() ou PopupPosition() donnent les mêmes résultats.

J'ai beau essayer de désactiver la fenêtre ou le bouton de lancement pour
empêcher l'usager de cliquer sur [...] pendant que le popup est actif,


rien
n'y fait. Normalement, je ne devrais pas avoir à le faire - windev devrait
empêcher qu'on puisse accéder à la fenêtre ou le bouton de lancement.

Par exemple, windev ne tiens pas compte du code ci-dessous;

FenRechCltSimple..Etat=Inactif
SaisieCodeClient=OuvrePopupPosition(PopBrowseClts,poBas,"")
FenRechCltSimple..Etat¬tif

ou encore ;

MonBouton..Etat=Inactif
SaisieCodeClient=OuvrePopup(PopBrowseClts,"")
MonBouton..Etat¬tif

Quelqu'un a une bonne idée?

Cordialement,

Réal Phil




Avatar
mat
Phil wrote:
Bonjour,

Un simple bouton [...] lance une fenêtre Popup contenant une table
fichier. Double clic sur une ligne et le code du client est retourné
en paramètre à la fenêtre précédente.

Tout fonctionne à merveille, SAUF si on clique à nouveau sur le
bouton de lancement [...] pendant que le popup est ouvert. Windev
semble alors prendre le contrôle et ferme la fenêtre sans que j'ai la
chance de retourner une valeur. Alors ça plante et me dit que la
valeur est attendue, etc...

Popup() ou PopupPosition() donnent les mêmes résultats.

J'ai beau essayer de désactiver la fenêtre ou le bouton de lancement
pour empêcher l'usager de cliquer sur [...] pendant que le popup est
actif, rien n'y fait. Normalement, je ne devrais pas avoir à le faire
- windev devrait empêcher qu'on puisse accéder à la fenêtre ou le
bouton de lancement.

Par exemple, windev ne tiens pas compte du code ci-dessous;




Bonjour Réal,

Le code de la fenêtre a une section "Fermeture". Tu y vérifies la valeur
de retour, p.ex.

SI MaFenêtre..ValeurRenvoyée = "" ALORS RepriseSaisie()

et la fenêtre ne se ferme plus avant qu'une valeur n'est
sélectionnée.

Salutations
Mat
Avatar
Phil
Réponse à Michel : Je voulais bien que le popup se ferme en perdant le
focus. C'est la valeur de retour qui n'allait pas.

Byky et mat : Cela fonctionne à merveille! Merci beaucoup!

J'avais essayé plusieurs solutions plus compliquées dans le meme genre, mais
je suis enchanté que la solution soit aussi simple.

Sincèrement,

Réal Phil