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

Langage Delphi Discussion :

Comment faire une simple boucle de décrementation


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 21
    Points : 20
    Points
    20
    Par défaut Comment faire une simple boucle de décrementation
    Bonjour,
    Je veux faire une simple boucle de décrementation des secondes. Par ex. j'ai un Label1, et je veux décrementer 1 minute (60 sec) par secondes, c.a. dire, chaque seconde mon label montre 1 sec de mons, jusqu'au zero.

    Merci!!

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Il faut mettre un timer dans la forme (avec un intervallle de 1000 ms) et
    à chaque événement onTimer décrémenter le compte de secondes.

    Attention, cette methode ne garantit pas un décompte parfait du temps passé sur de grands intervalles (qq heures).
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    Oui, je sais qu'il faut utiliser le timer, mais quel code dedans?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 60
    Points : 56
    Points
    56
    Par défaut
    Par exemple :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    var
     
      Form1: TForm1;
     
      seconde:integer;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
     Seconde:=60;
    end;
     
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
        if seconde = 0 then
         exit
          else
           dec(seconde);
           edit1.text:=inttostr(seconde);
    end;
     
    end.

  5. #5
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    un ptit code j'avais depuis longtemps, tu peut afficher un nombre de secondes de manière extremement personalisable
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    function TicsToTime(Seconds : Integer) : String;
    const daysecs = 3600 * 24;
    var
     j,h,m : Integer;
    begin
     m := 0;
     h := m;
     j := m;
     
     while Seconds >= daysecs do //Jour
      begin
       Inc(j);
       Dec(Seconds,daysecs);
      end;
     while Seconds >= 3600 do //Minutes
      begin
       Inc(h);
       Dec(Seconds,3600);
      end;
     while Seconds >= 60 do  //Secondes
      begin
       Inc(m);
       Dec(Seconds,60);
      end;
     
     Result := '';
     if(j > 0) then
      Result := Result + IntToStr(j) + ' j ';
     if(h > 0) then
      Result := Result + IntToStr(h) + ' h ';
     if(m > 0) then
      Result := Result + IntToStr(m) + ' m ';
     if(Seconds > 0) then
      Result := Result + IntToStr(Seconds) + ' s';
     
     if(Result = '') then
      Result := '0 s';
    end;

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    MERCIII!!!!

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

Discussions similaires

  1. [Smarty] comment faire une boucle
    Par wkd dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 19/08/2009, 13h36
  2. comment faire une simple rotation au centre
    Par Manau2000 dans le forum Flex
    Réponses: 4
    Dernier message: 04/12/2008, 10h14
  3. Réponses: 4
    Dernier message: 11/12/2007, 18h01
  4. [AJAX] Comment faire une boucle XMLHttpRequest qui marche ?
    Par lancelot_13 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/01/2007, 12h00
  5. Comment faire une boucle ???
    Par HookerSeven dans le forum Access
    Réponses: 6
    Dernier message: 17/06/2005, 12h58

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