Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

|WD9] Fermeture automatique

7 réponses
Avatar
Laurent
Bonjour

Sur une fenêtre en WD9, j'essaie vainement d'utiliser le système de
fermeture automatique après délai.
Quelle que soit la façon dont j'utilise cette fonction, soit en la
paramétrant dans la fenêtre, soit dans le Btn, ou bien en utilisant la
fonction DélaiAvantFermeture, avec ou sans affichage du délai restant,
j'ai le soucis suivant :
la fonction démarre correctement à l'ouverture de la fenêtre mais si
jamais je modifie n'importe quel champ (combo, champ de saisie,
selécteur, etc...) la fonction s'arrête et ne redemarre pas, la fenêtre
ne se ferme donc pas.
Par contre, si je ne touche à rien, la fenêtre se ferme bien dés le
délai atteint.
Le code dans mon btn de fermeture est ferme et ce btn ferme bien la
fenêtre lorsque l'on clique dessus et son type est abandon.

Je n'avais pas ce soucis en WD8.

Ma question, est-ce un bug connu ou alors est-ce que je passe à côté de
quelque chose ?

Merci

7 réponses

Avatar
Jean Passe
Salut,

le système de fermeture automatique après délai.





C'est quoi le système de fermeture automatique ? Si tu parles de
DelaiAvantFermeture, ça ne marche que sur des boîtes de dialogue me
semble-t-il.

Le code dans mon btn de fermeture est ferme et ce btn ferme bien la
fenêtre lorsque l'on clique dessus et son type est abandon.





Le code d'un bouton n'est exécuté que lorsque l'on clique dessus, non (on
peut peut être aussi l'exécuter lors du survol, mais quel intérêt) ?

Si tu veux que la fenêtre se ferme toute seule après un délai, il faut
mettre le code dans l'init de la fenêtre (ou y appeler une procédure) avec
TimerSys qou quelque chose du genre.

Sinon, je n'ai rien compris du problème.

a+
Avatar
Laurent
Jean Passe a écrit :

Salut,


Salut

>>le système de fermeture automatique après délai.

C'est quoi le système de fermeture automatique ? Si tu parles de
DelaiAvantFermeture, ça ne marche que sur des boîtes de dialogue me
semble-t-il.



Et bien si tu te rend dans l'onglet Détail d'une fenêtre, tu verra
que tu as la possibilité de déclarer la validation automatique d'un
bouton.
En l'occurrence, tu choisi le délai avant fermeture (par exemple) et
le bouton qui sera activé.
En code, l'équivalent est : DelaiAvantFermeture
Tu peut aussi déclarer cela directement dans l'onglet détail du
bouton.

Cela existe depuis 7.5 (peut-être aussi 7 mais je n'en suis pas sur)
et je l'ai utilisé sous 7.5 et 8 sans problème.
Mais là, je sèche . Ce n'est pas vital pour ce que je développe mais
bon, ça m'agace.


>>Le code dans mon btn de fermeture est ferme et ce btn ferme bien la
>>fenêtre lorsque l'on clique dessus et son type est abandon.

Le code d'un bouton n'est exécuté que lorsque l'on clique dessus, non (on
peut peut être aussi l'exécuter lors du survol, mais quel intérêt ) ?


Pas forcément. Tu peut executer le code d'un bouton (ou autre) en
utilisant la fonction ExécuteTraitement


Si tu veux que la fenêtre se ferme toute seule après un délai, il f aut
mettre le code dans l'init de la fenêtre (ou y appeler une procédure) avec
TimerSys qou quelque chose du genre.


Ben normalement non mais quand je reviendrai sur cette fenêtre, je
ferai surement ça si il s'agit d'un bug WD (et dans ce cas, bonjour la
régression)


Sinon, je n'ai rien compris du problème.


Tant pis
Merci quand même


a+


Avatar
Vincent
Laurent a écrit :
Jean Passe a écrit :


[..]
Le code d'un bouton n'est exécuté que lorsque l'on clique dessus, non (on
peut peut être aussi l'exécuter lors du survol, mais quel intérêt) ?



Pas forcément. Tu peut executer le code d'un bouton (ou autre) en
utilisant la fonction ExécuteTraitement



En tout cas pour le bouton, c'est *à mon avis* une pratique à éviter.
Si qq supprime le bouton, c la cata ...

Vincent.
Avatar
Jean Passe
Salut,

Et bien si tu te rend dans l'onglet Détail d'une fenêtre, tu verra
que tu as la possibilité de déclarer la validation automatique d'un
bouton.
En l'occurrence, tu choisi le délai avant fermeture (par exemple) et
le bouton qui sera activé.
En code, l'équivalent est : DelaiAvantFermeture
Tu peut aussi déclarer cela directement dans l'onglet détail du
bouton.





Bon, je vais voir ça. Je l'ignorais ....

a+
Avatar
Laurent
> Laurent a écrit :
Jean Passe a écrit :


[..]
Le code d'un bouton n'est exécuté que lorsque l'on clique dessus, non (on
peut peut être aussi l'exécuter lors du survol, mais quel intérêt) ?



Pas forcément. Tu peut executer le code d'un bouton (ou autre) en
utilisant la fonction ExécuteTraitement



En tout cas pour le bouton, c'est *à mon avis* une pratique à éviter.
Si qq supprime le bouton, c la cata ...



??? et qui va supprimer le bouton, l'utilisateur ???
Je voudrais bien voir ça qu'un utilisateur supprime un bouton sans mon
autorisation...

Blague à part, c'est une fonction hyper utilisé qui t'évite des
redondances de codes.

Je l'utilise depuis la 5.5 (Exécute) et je trouve ça vraiment très
pratique.


Vincent.


Avatar
Vincent
Laurent a écrit :
Laurent a écrit :

Jean Passe a écrit :



[..]

Le code d'un bouton n'est exécuté que lorsque l'on clique dessus,
non (on
peut peut être aussi l'exécuter lors du survol, mais quel intérêt) ?




Pas forcément. Tu peut executer le code d'un bouton (ou autre) en
utilisant la fonction ExécuteTraitement




En tout cas pour le bouton, c'est *à mon avis* une pratique à éviter.
Si qq supprime le bouton, c la cata ...




??? et qui va supprimer le bouton, l'utilisateur ???
Je voudrais bien voir ça qu'un utilisateur supprime un bouton sans mon
autorisation...



Je parlais bien évidement d'un développeur (toi ou qqn d'autre) qui
reprend l'appli un peu plus tard et fais des modifs sur l'écran.

Blague à part, c'est une fonction hyper utilisé qui t'évite des
redondances de codes.



Déplacer le code du bouton dans une procedure globale, une collection ou
autre ça ne fais pas de redondance de code et c'est un peu plus propre
mais ce n'est qu'un avis personnel ;-)


Je l'utilise depuis la 5.5 (Exécute) et je trouve ça vraiment très
pratique.



J'utilise aussi depuis la 5.5, mais j'essaie d'éviter l'appel direct du
code d'un bouton.
Par exemple, je m'en sert dans le cadre d'appli MDI, pour ouvrir une
fenêtre fille à partir d'un fenêtre indépendante, il faut demander à la
mère MDI de le faire donc de tête :
ExecuteTraitement(MaFenetrePrincipale.OuvrirDevis ...)

Vincent.


Vincent.







Avatar
Laurent
> Laurent a écrit :
Laurent a écrit :

Jean Passe a écrit :



[..]

Le code d'un bouton n'est exécuté que lorsque l'on clique dessus,
non (on
peut peut être aussi l'exécuter lors du survol, mais quel intérêt) ?




Pas forcément. Tu peut executer le code d'un bouton (ou autre) en
utilisant la fonction ExécuteTraitement




En tout cas pour le bouton, c'est *à mon avis* une pratique à éviter.
Si qq supprime le bouton, c la cata ...




??? et qui va supprimer le bouton, l'utilisateur ???
Je voudrais bien voir ça qu'un utilisateur supprime un bouton sans mon
autorisation...



Je parlais bien évidement d'un développeur (toi ou qqn d'autre) qui
reprend l'appli un peu plus tard et fais des modifs sur l'écran.


:oÞ


Blague à part, c'est une fonction hyper utilisé qui t'évite des
redondances de codes.



Déplacer le code du bouton dans une procedure globale, une collection ou
autre ça ne fais pas de redondance de code et c'est un peu plus propre
mais ce n'est qu'un avis personnel ;-)


Exact


Je l'utilise depuis la 5.5 (Exécute) et je trouve ça vraiment très
pratique.



J'utilise aussi depuis la 5.5, mais j'essaie d'éviter l'appel direct du
code d'un bouton.
Par exemple, je m'en sert dans le cadre d'appli MDI, pour ouvrir une
fenêtre fille à partir d'un fenêtre indépendante, il faut demander à la
mère MDI de le faire donc de tête :
ExecuteTraitement(MaFenetrePrincipale.OuvrirDevis ...)



Mais tout ça ne m'apporte pas de solution.
Tant pis et merci pour les conseils.

Laurent

Vincent.


Vincent.