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 :

Utiliser le Timer pour une procédure locale


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Utiliser le Timer pour une procédure locale
    Bonjour,
    Je suis débutant dans le domaine donc merci d'être précis dans vos explications tout comme je le serai dans ma question !
    Je dispose d'un programme à 3 fenêtres.
    Dans ma fenêtre principale s'y trouve ma procédure locale.
    Mes deux autres fenêtres permettent de changer les paramètres de l'application: une fenêtre permet le changement du dossier à scanner (valeur stocker dans un .ini), l'autre permet de changer la durée du timer.
    Le but de mon logiciel est de scanner une arborescence de dossier et quand un fichier est trouver le logiciel apparait à l'écran.
    J'aurai besoin de votre pour cette raison:
    Ma 3e fenêtre permet à l'utilisateur d'entrer la durée voulue, celle-ci sera stockée dans le .ini. Comment récupérer la valeur qui sera le paramètre de la fonction timer ? Où mettre cette fonction ? Y a-t-il des variables à déclarer en globale ou locale ?

    Voici le début de ma procédure locale de ma fenêtre principale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    PROCEDURE scanfic()
    UnFichier, ResListeFichier, MonMessage sont des chaînes
    AlerteJusquaEffacement est un booléen=Non
     
    // La liste des fichiers stockée est pointée à non traité
    HLitPremier(InfoRep,NomFic)
    Le code du projet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MonChemin est une chaîne
    Temps est un entier
    MonChemin=INILit("Config","Chemin","","C:\Program Files\WinDev 15\Mes Projets\NotifRepExe\Exe\Config.ini")
    Voici son apparence:


    Voici l'apparence de la fenêtre dans je clic sur les ... du changement de chemin:

    Le code de l'initialisation de la fenêtre
    Le code du bouton valider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INIEcrit("Config", "Chemin",SAI_Chemin, "C:\Program Files\WinDev 15\Mes Projets\NotifRepExe\Exe\Config.ini")
    Ferme()
    Et voici l'apparence de la fenêtre quand je clic sur les ... du changement de timer:

    Le code de l'initialisation de la fenêtre
    Le code du bouton valider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INIEcrit("Config", "Timer",SAI_Timer, "C:\Program Files\WinDev 15\Mes Projets\NotifRepExe\Exe\Config.ini")
    Ferme()
    Je voudrais que mon timer execute ma procedure locale toutes les "temps a recupérer dans mon fichier .ini

    Avez-vous besoin de plus de renseignements pour m'aider ?
    Merci d'avance.

  2. #2
    Membre Expert Avatar de EDM-TAHITI
    Homme Profil pro
    Directeur Service informatique et projet développement
    Inscrit en
    Janvier 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Directeur Service informatique et projet développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 994
    Par défaut
    Hello,
    Il faut gérer votre timer dans la fenetre qui va scanner les dossiers pour voir si un nouvel élément y est inséré.
    Pour poser un timer, voir avec l'aide, il sera de la forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Timer("NOMPROCEDURE",TEMPSINI,Num_Timer)
    Mais, il faut prendre en compte les modifications de temps voulues par l'utilisateur, il faut donc gérer dans la fenetre ou est posé le timer une variable qui sera de type entier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // variable fenetre pour le timer
    Num_Timer est un entier = 1
    Temps_Timer est un entier = INILit(("Config", "Timer",SAI_Timer, "C:\Program Files\WinDev 15\Mes Projets\NotifRepExe\Exe\Config.ini")
    Ensuite, dans la procédure du timer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Procédure LectureDossier()
     
    // on regarde si le temps a été modifié
    si Temps_Timer <> val(INILit(("Config", "Timer",SAI_Timer, "C:\Program Files\WinDev 15\Mes Projets\NotifRepExe\Exe\Config.ini")) alors
         // le temps est modifié
         // on arrête le timer en cours
         fintimer(Num_TIMER)
         // on prend le nouveau temps et stockage
        Temps_Timer = val(INILit(("Config", "Timer",SAI_Timer, "C:\Program Files\WinDev 15\Mes Projets\NotifRepExe\Exe\Config.ini"))
         // on repose le timer avec le nouveau temps
         Timer("NOMPROCEDURE",TEMPSINI,Num_Timer)
    sinon
        // faire ici le traitmeent pour détecter les nouveaux fichiers ou répertoires
     
    fin
    Voilà comment cela est possible
    Bon code

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/08/2009, 11h54
  2. Utiliser un Timer pour redessiner une fenêtre
    Par blueLight dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 07/11/2008, 22h12
  3. [delphi 5,6,7] utiliser un objet dans une procédure
    Par wizdom dans le forum Langage
    Réponses: 3
    Dernier message: 27/01/2006, 16h38
  4. Utiliser un timer dans une application console
    Par chavers dans le forum Langage
    Réponses: 8
    Dernier message: 25/05/2005, 15h07
  5. [MASM] Utiliser un .IF pour une comparaison de nombre signés
    Par Crisanar dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 24/11/2004, 17h32

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