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

Composants VCL Delphi Discussion :

TimePicker supérieur à 24h ?


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de KRis
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 232
    Par défaut TimePicker supérieur à 24h ?
    Bonjour à tous,
    j'utilise le composant DateTimePicker au format Time, et j'aimerais que celui-ci puisse aller plus loin que 24h...
    Est ce une demande absurde ? est ce possible ?

    Merci par avance ;-)

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Salut,

    Je ne pense pas que ce soit possible avec le format Time.

    Mais tu peux contourner le problème en utilisant GetTickCount
    TopDepart,Duree : longWord;
    Dans FormCreate :TopDepart:=GetTickCount; //< milliSecondes écoulées depuis la mise en marche de la machine.
    Et au moment d'afficher la durée écoulée : Duree:=GetTickCount - TopDepart donne le nombre de millisecondes écoulées depuis le TopDepart.

    En plus il faut récupérer l'heure à laquelle le topDepart est exécuté pour y ajouter la durée écoulée de manière à avoir un nombre d'heures supérieur à 24 heures ... mais cela ne fonctionne que si l'application est en fonction plus de 24 heures sans avoir été arrêtée.

    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  3. #3
    Membre éclairé Avatar de KRis
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 232
    Par défaut
    Merci,
    ça me parait bien compliqué en effet.
    Le mieux est peut être de créer un composant qui me permettrait de le faire...
    simplement je veux pouvoir afficher dans un TimePicker, en cliquant sur les boutons "haut/bas", des heures comme "29:42:00", il s'agit en fait d'un cumul d'heures...

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Re-salut,

    Ben si c'est pour un cumul d'heures c'est encore plus simple : Duree:=GetTickCount - TopDepart donne le cumul en millisecondes et il suffit de convertir les millisec en jours-heures-minutes-secondes.

    On peut même sauver sur le disque le cumul d'heure d'une session de manière à pouvoir le récupérer au lancement de la session suivantes s'il s'agit par exemple de cumuler le nombre d'heures d'utilisation d'une appli.

    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  5. #5
    Membre éclairé Avatar de KRis
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 232
    Par défaut
    Merci, je ne suis pas certain d'avoir bien expliqué mon problème.
    Ce n'est pas un problème de conversion mais simplement d'affichage.
    je voudrai sur le composant DateTimePicker pouvoir positionner un temps supérieur à 23:59:59...
    mais à mon avis c'est impossible, la seule solution serait peut être de créer un nouveau composant non ?

    merci de vos conseils et/ou éclairages
    Nom : DTP24.JPG
Affichages : 88
Taille : 7,7 Ko

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Salut,

    Puisque DateTimePicker ne permet pas de faire ce que tu veux, t'es bien obligé de faire sans lui. Donc faut créer soit un composant ou utiliser le système "D" à partir de composants standards.

    De toutes façons pour afficher des heures-minutes-secondes faudra convertir le temps écoulé-cumulé à partir de getTickCount (le plus simple) où à partir de "now".

    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

Discussions similaires

  1. Affichage de durées supérieures à 24h
    Par Stach029 dans le forum BIRT
    Réponses: 8
    Dernier message: 13/01/2015, 11h33
  2. Réponses: 6
    Dernier message: 10/05/2012, 15h29
  3. [AC-2010] Calcul de durées supérieures à 24h
    Par clickandgo dans le forum IHM
    Réponses: 8
    Dernier message: 06/01/2011, 13h54
  4. format heure supérieure à 24h dans textbox
    Par titemireille dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/02/2008, 11h41
  5. [VBA-E] somme d'heures supérieures à 24h
    Par bandit boy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/05/2006, 15h02

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