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

 Delphi Discussion :

Compte à rebours


Sujet :

Delphi

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Compte à rebours
    Salut tout le monde

    J'ai un problème, je n'ai pas réussi à créer un compte à rebours. Je n'ai pas compris la logique du Timer. Si quelqu'un pouvait m'aider.
    merci

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 844
    Points : 11 274
    Points
    11 274
    Billets dans le blog
    6
    Par défaut
    un Timer exécute une action à intervalle spécifié

    si tu veux faire un compte à rebours, mets '30' dans Label1.Caption

    lance un timer avec 1000 comme intervalle (1000 ms = 1 seconde)

    dans l'événement OnTimer du Timer, il faudra qu'il lise Label1.Caption, le traduise en entier, et le décrémente ; style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure Timer1.Timer(Sender: TObject);
    var
      i: integer;
    begin
      i:=StrToIntDef(Label1.Caption, -1);
      if i>0 
      then begin
        Dec(i);
        Label1.Caption:=IntToStr(i);
      end
      else Timer.Enabled:=False;
    end;
    Delphi 5 Pro - Delphi 10.4 Rio Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Octobre 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Octobre 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Il est possible, si vraiment le Timer t'est incompréhensible, d'utiliser sleep(t).

    Sleep(1000) fera passer une seconde, et si je ne m'abuse ça équivaut à lancer un TTimer avec un intervalle de 1000.

    Du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    While counter>0 do begin
     
          Dec(counter);
          sleep(1000);
     
    end;
    En espérant avoir pu fournir une autre solution

  4. #4
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Citation Envoyé par Yukinara Voir le message
    Il est possible, si vraiment le Timer t'est incompréhensible, d'utiliser sleep(t).
    Non, non, Sleep() est à proscrire au maximum, il ne doit jamais être utilisé car il interrompt le programme et les systèmes d'exploitation n'aiment pas les programmes qui ne répondent pas.

    De plus, si on fait une boucle qui prend du temps dans une application VCL ou FMX il faut quand même traiter les modifications à l'écran donc ajouter un Application.ProcessMessages, mais je le répète, le mieux est de ne pas faire de boucle de ce style et encore moins pour un Sleep();

Discussions similaires

  1. [timer] Compte à rebours pour redirection !
    Par Raideman dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/12/2005, 21h07
  2. Compte à rebours
    Par Anduriel dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 29/12/2005, 21h12
  3. compte à rebours
    Par Datord dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 17/11/2005, 22h22
  4. compte à rebours
    Par etoile1506 dans le forum C
    Réponses: 10
    Dernier message: 27/10/2005, 16h20
  5. Compte à rebours trop rapide
    Par Anduriel dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2005, 21h57

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