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

API, COM et SDKs Delphi Discussion :

Détecter le changement de minute


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 21
    Par défaut Détecter le changement de minute
    Bonjour,
    J'aimerai savoir s'il existe un moyen directe (message windows par exemple) d'effectuer une procédure à chaque changement de minute, dans le cadre d'une application type planificateur ?
    J'ai pour l'instant la solution de faire un SetTimer, mais cela ne me permet que de lancer la procédure avec 1 minute d'intervalle, pas forcement au moment de changement de minute...

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut,

    Si je comprends bien, tu veux que lorsque l'heure de windows change toutes les minutes, tu effectues une opération ...
    J'ai fait un truc vite fait (qui est peut être pas trop mal ... mais qui a une précision d'une seconde) :

    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
    var
      Form1: TForm1;
      MinSauvegarde:integer;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      MinSauvegarde:=StrToInt(copy(TimeToStr(now),4,2));
    end;
     
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      // Si on n'effectue pas l'action toute les minutes
      if Timer1.Interval <> 60000 then
      begin
        // Si on a changé de minute
        if StrToInt(copy(TimeToStr(now),4,2))<>MinSauvegarde then
        begin
          // On change l'interval à une minute vu qu'on s'est calé sur l'heure Windows
          Timer1.Interval:=60000;
          // Traitement
      end
      else
        // Traitement
    end;
    En fait, j'utilise un timer. au début de l'application, le timer est réglé sur une seconde pour que l'on récupère le premier changement de minutes au niveau de Windows. Une fois cela effectué, on peut changer l'intervalle à 1 minutes pour libérer les ressources. C'est vraiment du bricolage ...

  3. #3
    Expert confirmé 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
    Par défaut
    Bonjour,

    Petite adaptation du code de ero-sennin, pour éviter toute dérive dans le temps:

    Dans TForm1.Timer1Timer, on règle l'intervalle du timer au nombre de secondes restantes pour atteindre 60.

    Exemple: si now=12:34:45 on règle le timer à 15 secondes.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 21
    Par défaut
    A défaut d'avoir un message Windows, cette idée me plait bien, ça évite de faire des "if secondes=0" à chaque seconde ^^

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

Discussions similaires

  1. [M1][W1][N1][D1] Comment détecter un changement de résolution?
    Par jazz matazz dans le forum Contribuez
    Réponses: 6
    Dernier message: 04/03/2006, 21h20
  2. [TQuery] Détecter le changement de champ
    Par sjrd dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/04/2005, 17h20
  3. [Langue Clavier] Comment détecter le changement de la langue ?
    Par Fares BELHAOUAS dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 30/09/2004, 19h26
  4. Comment détecter un changement du réglage de voume sonore ?
    Par mjlub dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 09/01/2004, 17h43

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