IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

[WD12]Où mettre le code ?


Sujet :

WinDev

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 55
    Points : 41
    Points
    41
    Par défaut [WD12]Où mettre le code ?
    Voilà, j'ai créé un code sur un champ de saisie que j'ai mis sous "à chaque modification". Ce code permet de faire un calcul sur la saisie et de renseigner un autre champ saisie.

    L'inconvénient c'est que je ne peux taper une saisie à deux chiffres. Dès le premier chiffre, le code lance son calcul (ce qui me paraît tout à fait normal). Alors j'ai mis le code sous "sortie de" et là, tout fonctionne.

    Par contre, je dois quitter mon champ saisie pour voir le résultat calculé et revenir sur ce même champ si ce résultat ne me satisfait pas. Y a t-il une solution pour conserver "l'automatisme" de la première solution tout en pouvant mettre plus d'un chiffre dans le champ saisie ??

  2. #2
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 329
    Points : 3 841
    Points
    3 841
    Par défaut
    Salut à toi,

    Tu peux éventuellement mettre un RepriseSaisie(..) si ta condition n'est pas bonne.

    L'inconvénient est que le user ne pourra pas aller dans une autre zone tant que la condition sera fausse.

  3. #3
    Membre chevronné
    Avatar de mogwai162
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 1 860
    Points
    1 860
    Par défaut
    La chèvre et le chou...

    En effet il faut choisir sauf que tu peux toujours essayer de voir si tu peux ajouter des tests afin de determiner si il a fini sa saisie ou pas. par exemple si le code DOIT etre de deux chiffres c'est facile...
    Patrick Catella

    Je ne réponds pas aux messages privés si ceux ci suivent un sujet. Il est préférable pour tous de poursuivre la discussion dans le sujet d'origine.

    Je suis Concepteur développeur Windev (10 ans) et Windev mobile (4 ans) en recherche d'emploi. J'etudie toute proposition

  4. #4
    Membre chevronné
    Avatar de mogwai162
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 1 860
    Points
    1 860
    Par défaut
    Citation Envoyé par Lo² Voir le message
    L'inconvénient est que le user ne pourra pas aller dans une autre zone tant que la condition sera fausse.
    Tout a fait vrai mais c'est aussi à ça que servent les bouton marqués interruption et annulation.
    Patrick Catella

    Je ne réponds pas aux messages privés si ceux ci suivent un sujet. Il est préférable pour tous de poursuivre la discussion dans le sujet d'origine.

    Je suis Concepteur développeur Windev (10 ans) et Windev mobile (4 ans) en recherche d'emploi. J'etudie toute proposition

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par mogwai162 Voir le message
    La chèvre et le chou...

    En effet il faut choisir sauf que tu peux toujours essayer de voir si tu peux ajouter des tests afin de determiner si il a fini sa saisie ou pas. par exemple si le code DOIT etre de deux chiffres c'est facile...
    Effectivement c'est bien le problème de la chèvre et du chou. Pour ce qui est des tests, pas facile dans mon cas car seul l'utilisateur sait s'il mettre un nombre à 1 chiffre ou à 2 chiffres et encore, selon le résultat obtenu pourra changer d'avis.

    Donc me reste à mettre ce code sous "sortie de", cela semble convenir à plus de cas.

    Merci à tous les deux de votre rapidité à répondre à ce problème.

  6. #6
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 329
    Points : 3 841
    Points
    3 841
    Par défaut
    merci mogwai162, je n'y avais pas fait attention

  7. #7
    Membre actif

    Homme Profil pro
    Développeur Windev
    Inscrit en
    Mai 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Windev

    Informations forums :
    Inscription : Mai 2006
    Messages : 34
    Points : 223
    Points
    223
    Billets dans le blog
    1
    Par défaut
    Tu peux aussi passer par une procédure automatisée.
    Cette procédure affiche le résultat de ton code au bout de 5/10 de seconde et si tu saisis à nouveau quelque chose, tu arrête ta procédure avant qu'elle ne se déclenche pour relancer le compteur dans 5/10 de seconde.

    Pour cela, c'est simple, tu as une procédure CalculerValeur qui est automatique :
    Elle ne doit s'exécuter qu'une seule fois avec un différé de 5ms (à toi de jauger). Tu règles tout ça dans les propriétés de la procédure.

    Ensuite, dans ton code, dans le code de modification de ton champ de saisie, tu fais :

    // On annule l'appel de la procédure
    FinAutomatismeProcédure(CalculerValeur)
    // On relance l'appel de la procédure
    CalculerValeur()

    Ainsi, si ton utilisateur saisit un chiffre, s'il en saisie un autre en moins de 5ms, rien ne s'affiche, sinon, le résultat s'affiche.

    Si tu as besoin de plus de détail, n'hésite pas !
    Mes publications : mise en place en cours
    Mon blog sur WinDev: http://blog.ytreza.org

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par Johjo Voir le message
    Tu peux aussi passer par une procédure automatisée.
    Cette procédure affiche le résultat de ton code au bout de 5/10 de seconde et si tu saisis à nouveau quelque chose, tu arrête ta procédure avant qu'elle ne se déclenche pour relancer le compteur dans 5/10 de seconde.

    Pour cela, c'est simple, tu as une procédure CalculerValeur qui est automatique :
    Elle ne doit s'exécuter qu'une seule fois avec un différé de 5ms (à toi de jauger). Tu règles tout ça dans les propriétés de la procédure.

    Ensuite, dans ton code, dans le code de modification de ton champ de saisie, tu fais :

    // On annule l'appel de la procédure
    FinAutomatismeProcédure(CalculerValeur)
    // On relance l'appel de la procédure
    CalculerValeur()

    Ainsi, si ton utilisateur saisit un chiffre, s'il en saisie un autre en moins de 5ms, rien ne s'affiche, sinon, le résultat s'affiche.

    Si tu as besoin de plus de détail, n'hésite pas !
    Ta méthode me parait fort utile dans mon cas, mais pourrais-tu me l'expliquer plus en détails (avec exemple si possible) car débutant, je patauge un peu pour la mettre en application.

  9. #9
    Membre actif

    Homme Profil pro
    Développeur Windev
    Inscrit en
    Mai 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Windev

    Informations forums :
    Inscription : Mai 2006
    Messages : 34
    Points : 223
    Points
    223
    Billets dans le blog
    1
    Par défaut
    Tu vas voir, c'est très simple à mettre en place :

    Créés une procédure locale qui effectuera le calcul de ta valeur et qui mettra à jour tes champs.
    En gros, son code est l'équivalent de ce que tu as mis en code Sortie de champ.

    Une fois qu'elle est faite, tu fais un clic droit sur cette procédure (dans la fenêtre procédure locale). Une fenêtre s'ouvre "Automatisme de la procédure".

    Dans cette fenêtre, tu coches dans la zone Quand ? l'option Différé de .... (il faudra mettre une durée ni trop longue ni trop courte, à toi de voir

    Enfin, dans ton code, en modification de champ, tu mets :

    // On annule l'appel de la procédure
    FinAutomatismeProcédure(NomProcédure)
    // On relance l'appel de la procédure
    NomProcédure()

    où NomProcédure correspond à ta fonction automatique. Note qu'il ne faut pas de () dans FinAutomatismeProcédure.

    Bon courage
    Mes publications : mise en place en cours
    Mon blog sur WinDev: http://blog.ytreza.org

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    cela fonctionne !!

    Ma première tentative avait échouée car dans la configuration de l'automatisme de la procédure, j'avais mis le temps dans le cadre "combien de fois" au lieu de "Quand".

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Impossible de mettre du code dans <HEAD>
    Par sunshine33 dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 02/06/2006, 11h31
  2. Réponses: 42
    Dernier message: 13/01/2006, 14h51
  3. Api Windows : Ou mettre le code de l'application.
    Par fab29000 dans le forum Windows
    Réponses: 2
    Dernier message: 06/10/2005, 09h03
  4. Mettre un code php dans une variable...
    Par kedare dans le forum Langage
    Réponses: 6
    Dernier message: 19/09/2005, 12h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo