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 :

[WD10] execution d'une partie du programme


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Points : 12
    Points
    12
    Par défaut [WD10] execution d'une partie du programme
    Bonjour,
    Je cherche a exécuter une partie du programme pendant un temps bien précis (3s par exemple). j'ai essaye d'utiliser les fonction de ChronoDébut(),ChronoFin(),ChronoValeur, mais ça marche pas. Es ce que quelqu'un a une idée?
    Merci a l'avance

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Utiliser un timer ?
    Il faut de toute façon que l'évènement soit accessible en permanence pendant l'exécution principale du logiciel.


    Il est indispensable de tagger votre titre avec la version de WD utilisée pour que l'on puisse vous aider efficacement.
    cf Règles pour poster un message.

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Justement, un timer va faire appelle a ma procédure périodiquement (suivant la fréquence qu'on a préciser)
    Ce que je veux moi, c'est de pouvoir exécute une partie de programme pendant une durée bien précise (par exemple:incrémenter une variable pendant 5s et après ces 5s revenir a mon programme principale).
    J’espère que j'ai bien expliqué ce que je veux faire???
    Merci a l'avance

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    C'était déjà très clair la première fois

    Je ne parle pas d'utiliser un timer pour appeler votre procédure, mais d'appeler un timer pour vérifier si le temps est écoulé et si oui stopper la procédure ou le programme.

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Points : 12
    Points
    12
    Par défaut [WD10] Execution d'une partie du programme
    Mon vrais problème est de comment calculer le temps écouler et de pouvoir faire un test pour stopper l'exécution, j'ai essaye d'utiliser les fonctions de ChronoDébut(),ChronoFin(),ChronoValeur, mais je ne sais pas ce qui ne marche pas. Déjà en Débogueur il me dit que la fonction ChronoDébut() n'es pas évaluer. Voila la partie du code a toi de me dire ce qui ne marche pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Chronopro=(sortie..Valeur*Temp_cycle)/100
    BOUCLE
    	ChronoDébut()	
    	température..Valeur++
                 i=ChronoValeur()/1000
    	IF i=Chronopro THEN SORTIR
    FIN
    La j'incrémente la valeur de température puis je fais un test
    Merci a l'avance

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    On ne parle pas du tout du même procédé.
    J'ai toujours une version WD9 et je n'ai pas les fonctions Chrono.

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    ah ok alors comment je peux faire si je veux utiliser un timer pour la meme procedure, donner moi un exemple de code si c'est possible
    Merci

  8. #8
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Je tente ma chance voici une approche.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ThreadExecute("MonThread",ThreadNormal,"MaProc") //en init de projet
    ThreadSuspend("MonThread")
    Lorsque tu veux commencer à executer le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ThreadReprend("MonThread")
    hdebut est une heure = HeureSys()

    Dans la procédure thread
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    PROCEDURE MaProc()
     
    tantque true
       //incrémentation variable
       //threadpause(10) pour ne pas surcharger le cpu
    FIN
    L'idée est maintenant de controler le temps d'execution de MaProc. Tu peux lancer un timer dans le code du projet ou de la fenetre qui vérifie périodiquement le temps écoulé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TimerSys("CtrTemps",100) //chaque seconde ou plus court
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    PROCEDURE CtrTemps
     
    Si ThreadExiste("MonThread")
    Si HeureDifference(heuresys,hdebut) > TempsVoulu
       ThreadSuspend("MonThread") //on arrête l'execution 
    FIN
    FIN
    Il faudrait faire des tests voir ce que ca donne.

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    ok je vous remerci , je vais voir ce que ca donne

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/05/2014, 11h50
  2. Executer seulement une partie du rapport
    Par gre_sfo dans le forum BIRT
    Réponses: 5
    Dernier message: 12/11/2012, 16h08
  3. Réponses: 3
    Dernier message: 22/02/2009, 22h27
  4. [WD10-Exp]Remplir une combo par programmation
    Par evosan dans le forum WinDev
    Réponses: 5
    Dernier message: 19/04/2007, 11h22
  5. temps d'execution d'une portion de programme????
    Par othland dans le forum C++
    Réponses: 7
    Dernier message: 04/03/2006, 19h12

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