PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Validation auto d'un bouton
Validation auto d'un bouton
Iniciado por Morgan, set., 07 2005 5:57 PM - 5 respostas
Publicado em setembro, 07 2005 - 5:57 PM
Bonjour à tous,

dans une fenêtre, j'ai créé un bouton à validation automatique.
cette fenêtre peux être appelée via 3 fenêtres.
je veux plus que ce bouton soit à validation auto.
problème : je décoche la case correspondante, mais lorsque je retourne tout de suite après sur la description de la fenêtre, la case est encore cochée et le bouton toujours à validation auto.
Que ce passe-t-il ?
Quelqu'un a une solution pour moi ?

merci à tous.
Publicado em setembro, 08 2005 - 1:30 AM
Bonjour,

Oui effectivement j'ai fait un test et j'ai trouvé que c'est vrai ce que vous avez eu comme problème même en version 34i.
Heureusement aussi pour vous je vous ai trouvé un astuce simple pour le décoché.

Créer un autre bouton simple sans aucun code dedant, puis cochez cet option aussi pour ce champs et décochez là pour l'ancien, enregistrer la fenêtre, puis executez-la, fermez la fenêtre puis dans l'editeur vérifiez si c'est bien décoché pour l'ancien bouton si oui donc supprimez le nouveau bouton et voilà. ( c'est logique puisque la fenêtre n'accepte qu'un seul bouton en validation automatique ) et même s'il me signale toujours en bas de la validation que le champs (qui est supprimé) est actuellement en validation auto.

Bizzzzzzzare.


Ali Hindi
AliDev7@yahoo.fr
Publicado em setembro, 08 2005 - 10:00 AM
en effet, votre solution fonctionne.
merci beaucoup, c'était pas idiot comme résonnement.
Publicado em setembro, 08 2005 - 11:16 AM
Bonjour,

Pour les fenetres generalement ceux indiquant un message, une info exemple : 'Cet article n'est plus disponible' pour ne pas jouer sur la validation automatique tu peux faire un truc :

Demande dans ton projet à ce que la fenetre des message box soit personnalisable suivant votre gabarit .. et windev créera pour vous une fenetre géneralement nomé : WindevMessageBox
dans la déclaration globale de cette fenetre tu trouvera :
Procedure WindevMessageBox(szTitre="Test",szLibelle="Message test",nType=1,nNumBouton=1)

Vous, vous allez ajouter 2 autre paramètres

Procedure WindevMessageBox(szTitre="Test",szLibelle="Message test",nType=1,nNumBouton=1,nValAuto=0,nTemps=3)

// et en bas de tout le code
selon nType
cas 0 : // message info
si nValAuto=1 et nTemps>0
multitache(ntempsX100) // nTemps est exprimer en seconde 1s,2s,3s ds le parametre
executetraitement(btn_ok,trtclic)
fin
cas 1 : // message erreur
si nValAuto=1 et nTemps>0
multitache(ntempsX100) // nTemps est exprimer en seconde 1s,2s,5s.. ds le parametre
executetraitement(btn_ok,trtclic)
fin
bien sûre pour les message ouinon() et comfirmer() l'intervenetion de l'utilisateur est obligatoire

// Pour l'appel de la fenetre tu fais :

ouvre WindevMessageBox("Bravo","Ton Message",0,1,1,3)

Cela est surtout important dans le cas des ecran tactile ou si les message sont nombreux..

je vous ai donné cet exemple seulement pour vous en inspirer d'autres ..... ;)


Bon Dev.
Ali Hindi : Alidev7@yahoo.fr
Publicado em setembro, 08 2005 - 11:42 AM
merci beaucoup pour ce renseignement.
ça fait plaisir l'entraide entre développeurs.

bon courage à vous.
Publicado em setembro, 08 2005 - 12:27 PM
Il y a aussi la fonction *DélaiAvantFermeture* qui permet de temporiser
une action sur un bouton par programmation.
donc en fonction d'un paramètre on peut l'activer ou non.
(je m'en sert dans une fenêtre avec des thread pour fermer la fenêtre
quand mon thread a fini (temporisé a 5 secondes pour que l'utilisateur
puisse voir la fin du traitement))

extrait de la doc :
DélaiAvantFermeture(<Nom de la fenêtre>, <Nom du bouton> [, <Délai>])

Détails des paramètres
<Nom de la fenêtre> : Chaîne de caractères (avec ou sans guillemets)
Nom de la fenêtre pour laquelle il faut gérer un traitement automatique.

<Nom du bouton> : Chaîne de caractères (avec ou sans guillemets)
Nom du bouton dont le code sera exécuté au bout du délai spécifié. Si la
fenêtre doit se fermer, le code du bouton doit contenir la fonctionFerme.

<Délai> : Entier
Temps avant l'exécution automatique du code de clic sur le bouton
spécifié (exprimé en centièmes de secondes).
Si ce paramètre vaut 0 ou est omis, le délai est infini (cas par défaut)
: les fenêtres ne sont pas automatiquement fermées, et le délai
précédemment donné est annulé.

A++
Goof
Ali Hindi a écrit :
Bonjour,

Pour les fenetres generalement ceux indiquant un message, une info exemple : 'Cet article n'est plus disponible' pour ne pas jouer sur la validation automatique tu peux faire un truc :

Demande dans ton projet à ce que la fenetre des message box soit personnalisable suivant votre gabarit .. et windev créera pour vous une fenetre géneralement nomé : WindevMessageBox
dans la déclaration globale de cette fenetre tu trouvera :
Procedure WindevMessageBox(szTitre="Test",szLibelle="Message test",nType=1,nNumBouton=1)

Vous, vous allez ajouter 2 autre paramètres

Procedure WindevMessageBox(szTitre="Test",szLibelle="Message test",nType=1,nNumBouton=1,nValAuto=0,nTemps=3)

// et en bas de tout le code
selon nType
cas 0 : // message info
si nValAuto=1 et nTemps>0
multitache(ntempsX100) // nTemps est exprimer en seconde 1s,2s,3s ds le parametre
executetraitement(btn_ok,trtclic)
fin
cas 1 : // message erreur
si nValAuto=1 et nTemps>0
multitache(ntempsX100) // nTemps est exprimer en seconde 1s,2s,5s.. ds le parametre
executetraitement(btn_ok,trtclic)
fin
bien sûre pour les message ouinon() et comfirmer() l'intervenetion de l'utilisateur est obligatoire

// Pour l'appel de la fenetre tu fais :

ouvre WindevMessageBox("Bravo","Ton Message",0,1,1,3)

Cela est surtout important dans le cas des ecran tactile ou si les message sont nombreux..

je vous ai donné cet exemple seulement pour vous en inspirer d'autres ..... ;)


Bon Dev.
Ali Hindi : Alidev7@yahoo.fr