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.NET Discussion :

Afficher temps timer tick


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Par défaut Afficher temps timer tick
    Bonjour, j'ai 2 textbox , l'une pour que l'utilisateur entre les heures et l'autre pour qu'il entre les minutes. J'ai ensuite rassemblé celles-ci vers un Timer1.Interval donc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Timer1.Interval = heure.Text * 3600000 + min.Text * 60000
    "heure" est la textbox1 et "min" est la textbox2 . J'aimerais afficher maintenant le temps restant du timer1.interval en heure , en minutes et en secondes(format HH:MM:SS) car après que timer1.interval ne soit arrivé à 0 , le timer démarre et effectue une série d'actions. Comment peut-on afficher ces informations dans un label ?

    Merci d'avance.

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2012
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 337
    Par défaut
    Bonsoir,

    Je ne sais pas si c'est vraiment une bonne idée d'utiliser un timer pour d'aussi long intervales.
    Dans tout les cas attention à ce que la valeur de .interval ne dépasse pas la taille maximale d'un Int32 (214.783.648).

    Personnellement, je pense que j'aurais fait un timer d'une minute et qui compare l'heure de démarage du timer et l'heure actuelle ce qui vous permet de mettre autant d'heures que vous voulez.

    Certes le timer tourne plus mais en le mettant sur un autre thread il ne devrais rien consommer (enfin si vous en avez pas 10000 )

    EDIT: Après avoir fumé une cigarette, je me suis aperçu que je vous ai dit une bêtise. Mis à part si votre application tourne sur un serveur ET que l'on n'arrète jamais l'application, ma solution fonctionne.
    Comme on aime pas trop les SI en programmation, il vaut mieux enregistrer la date et l'heure de début du timer dans un Setting puis au démarage de l'application relancer le timer qui vérifie que le temps n'est pas expiré.

    Exemple: l'utilisateur met 24H dans votre timer, qui dit que le pc ne vas pas être éteint (coupure volontaire ou pas)

    Le fait d'enregistrer l'heure de début du timer dans un setting vous permet de conserver cette donnée en cas d’arrêt de votre pc. Il ne vous reste plus qu'à trouver la manière la plus appropriée pour redémarer le timer de comparaison.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Par défaut
    Merci pour votre réponse. J'ai également fais le bouton qui arrête le timer au cas où l'utilisateur mettrais 24h. Je vais voir comment je peux faire en utilisant votre méthode pour comparer l'heure au début du programme ...

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 104
    Par défaut
    Je ne comprends pas trop.
    La propriété Interval d'un Timer ne varie pas (en tout cas pas d'elle-même).
    Interval correspond à la périodicité à laquelle s'effectue l'évènement _Tick.

    Dans ton cas, si on entre 2 heures et 30 minutes pour l'Interval, il y aura donc un évènement _Tick toutes les 2h30, et rien d'autre ne se produira venant du Timer durant cette période.
    De plus le Timer ne décompte rien de lui-même (ce n'est pas un compte à rebours). Ca il faut le coder...

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Par défaut
    Mais il n'y aurait aucun moyen d'afficher cette périodicité dans un label par exemple ?

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    pour afficher le temps restant à la seconde près il faut un timer avec 1000ms d'interval pour rafraichir le label
    il faut donc sur le démarrage enregistrer la date prévue de l'action (now + temps à attendre)
    et sur le tick du timer à 1000ms afficher le timespan du datediff(date_prevue, now)
    et si date_prevue >= now alors vous arretez le timer et vous déclenchez l'action

    s'il faut que l'action se fasse même si l'appli est arrêtée, il faut utiliser les tâches planifiées de windows, manipulables depuis le programme
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Et se qui est bon à savoir c'est qu'il y a plusieurs timer différents, voir ce message de tomlev

Discussions similaires

  1. Notion de temps du Ticks
    Par angel46 dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 04/02/2013, 12h36
  2. Réponses: 0
    Dernier message: 22/07/2010, 12h35
  3. Gestion du temps (Timer -chrono + événements)
    Par DURVILLE dans le forum Langage
    Réponses: 8
    Dernier message: 27/04/2008, 17h59
  4. [debutant] afficher temps d'une requete
    Par Emcy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/11/2006, 16h53
  5. [Timer]Comment mesurer un intervalle de temps ?
    Par Pill_S dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 07/05/2004, 17h39

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