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

VB 6 et antérieur Discussion :

utilisation de 2 timers - le 2è n'exécute pas la fonction Timer2_Timer ()


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 294
    Points : 98
    Points
    98
    Par défaut utilisation de 2 timers - le 2è n'exécute pas la fonction Timer2_Timer ()
    Bonjour,

    j'ai 2 timers et 2 forms (1 timer dans chaque Form)

    -> la Form1 affiche une icône dans la barre des tâches de Windows et permet de notifier que le programme exécute la tâche
    -> la Form2 affiche une barre de progression qui indique que la tâche s'exécute

    1er Timer :
    - regarde toutes les 3 sec s'il y a une tâche à exécuter (par ex: convertir un docx en pdf)
    - lorsqu'il exécute l'action, le timer1 fait :
    -> met son enable en false
    -> met le enable du timer2 en true

    2ème Timer :
    - sert à alimenter une barre de progression contenue dans un 2ème Form qui s'affiche à l'écran et ce, le temps de l'exécution de la tâche

    problème :

    la barre de progression n'est pas alimentée (ne progresse pas)
    je mets un msgbox DANS la fonction Timer2_Timer() et je n'ai aucun résultat, comme si cette fonction ne s'exécutait pas

    Remarques :

    si je mets des msgbox pour afficher la valeur du progressbar (progressbar1.value), celui-ci s'incrémente et affiche la progression tant que je n'ai pas cliqué sur le bouton ok du msgbox.

    C'est comme s'il ne pouvait pas faire 2 choses : afficher la progressbar et en même exécuter la tâche demandée ou comme s'il ne pouvait s'occuper de 2 forms en même temps

    Ne serait-ce pas un problème de threats que VB6 ne peut gérer ?

    une précision : le code de la procédure de la tâche (convertir docx en pdf) se trouve dans le code du form1

    merci pour vos avis

    Cpf

  2. #2
    Membre éprouvé Avatar de DAUDET78
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2008
    Messages
    635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 635
    Points : 1 168
    Points
    1 168
    Par défaut
    Un petit fichier.zip avec l'ensemble de ton programme VB6 ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 294
    Points : 98
    Points
    98
    Par défaut
    Bonjour,

    Je suis désolé mais l'ensemble m'est impossible à diffuser pour cause de sécurité

    par contre, j'ai fait un petit script VB6 juste pour tester les timers et j'ai le même problème :

    2 forms avec chacune un timer et une barre de progression

    une 3ème form avec des boutons qui lancent les 2 autres forms (enable = true) séparément => alors on voit que les 2 barres de progressions fonctionnent comme je le souhaite

    MAIS si dans ma troisième fenêtre, je lance (avec un bouton ou automatiquement variable compteur = x) un procédure pour, par ex, convertir un docx en pdf, les 2 barres de progression qui se trouvent dans les 2 autres forms s'arrêtent le temps que la procédure soit terminée

    Je pense que les connaisseurs de ce problème vraisemblablement connu depuis très longtemps (depuis que VB6 existe et ça date) doivent très bien en connaître la raison

    Merci d'avance

    cpf

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 265
    Points : 1 843
    Points
    1 843
    Par défaut
    je dirai que le problème est que l'exécution de la tâche bloque la gestion de progressbar (et donc du timer2).
    Donc il faudrait lancer ta procédure dans un nouveau processus (faire du multithread) ou incorporer la progression de la barre dans le corps de la procédure.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 294
    Points : 98
    Points
    98
    Par défaut
    Bonjour Umfred,

    Merci pour la réponse.

    Est-il possible de faire du multithreading avec VB6 ?
    Si oui, en as-tu une idée ou un lien ?
    J'ai lu beaucoup qu'il était quasiment impossible avec le VB6

    Merci d'avance

    cpf

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 265
    Points : 1 843
    Points
    1 843

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

Discussions similaires

  1. Utilisation d'un Timer
    Par thierion dans le forum MATLAB
    Réponses: 4
    Dernier message: 13/11/2007, 14h31
  2. [java.util.Timer]Comment arrêter l'exécution d'un Thread
    Par Invité dans le forum Concurrence et multi-thread
    Réponses: 1
    Dernier message: 07/06/2006, 07h54
  3. Utilisation d'un timer de la MFC
    Par bobirem dans le forum MFC
    Réponses: 5
    Dernier message: 09/05/2006, 00h11
  4. utilisation d'un timer
    Par jiraya43 dans le forum MFC
    Réponses: 2
    Dernier message: 04/05/2006, 16h52
  5. [Débutant] Utilisation d'un timer
    Par mickael777 dans le forum MFC
    Réponses: 7
    Dernier message: 28/10/2005, 11h40

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