2009-02-08 10 views
0

hey, que dois-je écrire, si je veux la date & temps qui se met à jour? Label3.Caption: = TimeToStr (Time) cela me montre juste l'heure, quand j'ai ouvert le programme, mais je veux un moment, qui met à jour le formulaire chaque seconde (-> comme une horloge normale fait).date et heure à delphi

Répondre

11

1) Laisser un objet TTimer sur votre formulaire

2) Définir son propert 'Intervalle' à 1000 et sa propriété 'Activé' à true.

3) Double-cliquez dessus pour créer un gestionnaire d'événements OnTimer. Modifier ce som il ressemble à ceci:

procedure TForm1.Timer1Timer(Sender: TObject); 
begin 
    Label3.Caption := TimeToStr(Time) 
end; 

Et là vous l'avez ...

+0

Belle réponse, tu me bats aussi il; o) – stukelly

+0

Remarque que cela ne sera pas mis à jour si le thread principal est occupé - par exemple charger ou enregistrer des données, à moins qu'il y ait un appel à Application.ProcessMessages car le message de minuterie Windows ne sera pas traité. –

+0

@Gerry: Vrai. Mais puisque l'utilisation de la VCL à partir de plusieurs threads est hors de question, sans Application.ProcessMessages(), il n'y a aucun moyen * * * * all * pour garder quelque chose dans l'interface graphique mise à jour pendant les tâches de longue durée. – mghie

2

drop donc une minuterie sur la forme, mis à cocher toutes les 500ms environ, et à écrire le temps de votre champ d'heure de texte dans le gestionnaire d'événements pour le temporisateur. Vous devez cocher plus vite que le plus petit intervalle de temps que vous souhaitez afficher. Notez également que les minuteries Windows sont très peu prioritaires, donc si le processeur est chargé, votre minuteur peut sembler "coller".

6

Vous pouvez utiliser le composant Timer pour mettre à jour la légende d'étiquette toutes les secondes.

  1. Supprimez une minuterie sur votre formulaire.
  2. Définissez la propriété Interval sur 500, ce qui met à jour la légende toutes les demi-secondes.
  3. Définissez la propriété Enabled sur true.
  4. Double-cliquez sur le temporisateur et ajoutez le code suivant.

    Label3.Caption: = TimeToStr (temps)

Vous pouvez également utiliser la fonction FormatDateTime, pour changer la façon dont le temps est affiché