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 :

Timer


Sujet :

Delphi

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 96
    Par défaut Timer
    Bonjour

    Je n'utilise pas souvant les timer donc ce problème vous paraitra surment bete, bref: J'active un timer en clickant sur un bouton de ma form ensuite celle-ci est totalement bloqué. Je peut donc pas clické sur le bouton qui me permet de désactivé le timer.

    Merci

  2. #2
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    Quel est le code accroché au OnClick de ce bouton ?

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Février 2006
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 624
    Par défaut
    Ajoutes Application.ProcessMessages dans le code bloquant.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 96
    Par défaut
    Il y a juste pour l'activation/ désactivation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Timer1.Enabled:=true/ false;

  5. #5
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    Effectivement, rien de spécial...

    Comment est règlé ce timer : valeur de l'"interval" ?
    Y a t'il du code dans son événement OnTimer ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 96
    Par défaut
    Et voila ce que j'ai dans le timer

    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
     try
      ForceDirectories('c:\PremierRep\');
      AssignFile(F,'c:\PremierRep\MonFichier.txt');
      //try
       if fileexists('c:\PremierRep\MonFichier.txt') then
        append(F)
       else
        rewrite(F);//car sinon erreur
     
       while(True) do
        begin
         writeln(F,DateTimeToStr(now)); // ici pas le choix;
         sleep(5000);
        end;
      except
      // ShowMessage('Erreur');
      end;

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 96
    Par défaut
    le code précédent est dans OnTimer et intervale 1000

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Février 2006
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 624
    Par défaut
    OK.
    Ce n'est pas étonnant que cela bloque.
    Ton gestionnaire pour l'évenement onTimer est appelé chaque seconde
    et il contient l'instruction sleep(5000) qui le met en attente 5 secondes.
    Supprimes Sleep(5000) et éventuellement augmentes l'interval du timer.

    ps
    j'ai failli oublier... Le while(true)! Et quelle est la condition de sortie de ta boucle?

    Supprime également l'instruction "while true".

  9. #9
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while(True) do
        begin
         writeln(F,DateTimeToStr(now)); // ici pas le choix;
         sleep(5000);
        end;
    Tant que (vrai).... ça devient faux quand ?

    ensuite, il y a ce sleep(5000) pendant lequel le timer va se déclencher 5 fois...pour rééxecuter ce même code

    Que cherches-tu à faire ?

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 96
    Par défaut
    je ne le mais jamais a faux, et ce code me permet seulement de faire un test, j'écrit dans un fichier l'heure actuel avec un intervale de 5s.

  11. #11
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 703
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 703
    Par défaut
    Pourquoi utiliser un Timer, alors ?
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 96
    Par défaut
    Tout simplement parceque je suis débutant et que c'est quelqu'un qui ma conseiller de mettre un timer, mais si tu a un meilleur conseil a me donner je te serait trés reconnaissant.

    Merci

  13. #13
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 703
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 703
    Par défaut
    Que cherches-tu a faire, au juste ?
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 96
    Par défaut
    Je veu juste créer un fichier dans le quel y aura la date et l'heure actuelle avec un intervalle variable.

    Exemple: 15/05/2006 11:59:42 ici 5s mais je peut le changer, si besoin.
    15/05/2006 11:59:47

  15. #15
    Membre émérite
    Profil pro
    Inscrit en
    Février 2006
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 624
    Par défaut
    Fais comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      ForceDirectories('c:\PremierRep\');
      AssignFile(F,'c:\PremierRep\MonFichier.txt');
     
      if fileexists('c:\PremierRep\MonFichier.txt') then
        append(F)
      else
        rewrite(F);//car sinon erreur
        writeln(F,DateTimeToStr(now)); // ici pas le choix;
    end;
    Puis tu fixes l'interval à 5000;
    Ainsi toute les 5 secondes le timer invoque ton gestionnaire qui écrit l'heure dans le fichier.

    ps: Sinon tu peux ouvrir le fichier dans le create de la fiche et faire un closefile dans l'évenement ondestroy de la fiche.
    Puis dans le timer tu te contentes juste d'écrire dans le fichier.
    Bref, tu gère les exceptions l'ouverture et fermeture du fichier en dehors du gestionnaire de l'évenement onTimer du Timer.

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 96
    Par défaut
    Ok merci a tous.

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

Discussions similaires

  1. Comment faire un Timer de fonction PORTABLE ?
    Par dieuP1guin dans le forum C
    Réponses: 3
    Dernier message: 04/07/2003, 10h44
  2. [horloge] conflit caractère / timer
    Par JeanJean dans le forum C
    Réponses: 10
    Dernier message: 09/05/2003, 23h47
  3. [] [Réseau] Anti-timer, anti-idle
    Par clonevince dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 15/01/2003, 22h19
  4. Timer de précision
    Par guigui dans le forum MFC
    Réponses: 1
    Dernier message: 04/12/2002, 15h21
  5. Timer en µsecondes
    Par Dagobert dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 25/11/2002, 00h59

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