Heure en temps réel

Soyez le premier à donner votre avis sur cette source.

Snippet vu 16 203 fois - Téléchargée 36 fois

Contenu du snippet

Ce code affiche l'heure dans un "form" en temps réel. Deux thread sont crées :

1) Le "form"

2) Un thread appelé time Thread qui calcule l'heure, dort une seconde calcule l'heure, dort une seconde .... (en boucle) A chaque fois que le thread calcule l'heure, il l'affiche dans la "form".

Source / Exemple :


using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Threading;

namespace MyTime
{

	/// <summary>
	/// Summary for MyTime
	/// </summary>
	public class MyForm : System.Windows.Forms.Form
	{
	

		//{{OBJ_DECLARATION(MyTime.MyForm)
		protected System.Windows.Forms.Label timeLabel;
		//}}OBJ_DECLARATION
		
		private Thread timeThread;
	
		public MyForm()
		{
		// Required for Visual Forms support
			InitializeComponent();

		// TODO: Add any constructor code after InitializeComponent call
		}

		/// <summary>
		/// Clean up any resources being used.
		/// </summary>
		protected override void Dispose( bool disposing )
		{
			base.Dispose( disposing );
		}

		/// <summary>
		/// Required method for Visual Forms support - do not modify
		/// the contents between the //{{ ... //}} tags.
		/// </summary>
		private void InitializeComponent()
		{			
			//{{OBJ_INSTANTIATION(MyTime.MyForm)
			this.timeLabel = new System.Windows.Forms.Label();
			//}}OBJ_INSTANTIATION
			
			this.SuspendLayout();
						
			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
			
			//{{OBJ_PROPERTIES(MyTime.MyForm.timeLabel)
			this.timeLabel.Location = new System.Drawing.Point(30, 30);
			this.timeLabel.Size = new System.Drawing.Size(140, 40);
			this.timeLabel.TabIndex = 0;
			this.timeLabel.Font = new System.Drawing.Font("Modern", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(255)));
			//}}OBJ_PROPERTIES
			
			this.timeLabel.Text = this.returnTime();

			//{{FORM_PROPERTIES(MyTime.MyForm)
			this.ClientSize = new System.Drawing.Size(200, 100);
			this.Font = new System.Drawing.Font("MS Sans Serif", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
			this.Controls.Add(this.timeLabel);
			//}}FORM_PROPERTIES
			
			this.Text = this.returnDate();
			
			this.Name = "MyForm";
			//this.Text = "MyForm"; 
			
			this.ResumeLayout(false); 
			
			
			timeThread = new Thread(new ThreadStart(timeLive));
			timeThread.Start();		
		}
		
		
		string returnDate(){
			string dateNow = null;
			DateTime now = DateTime.Now;
			dateNow = now.Day + "." + now.Month + "." + now.Year ;
			return dateNow;
		}
		
		
		string returnTime(){
			string timeNow = null;
			int hour;
			int minute;
			int second;
			string hS, mS, sS;

			DateTime now = DateTime.Now;
			hour = now.Hour;
			minute = now.Minute;
			second = now.Second;

			if( hour < 10 )
				hS = "0" + hour;
			else
				hS = "" + hour;
				
			if( minute < 10)
				mS = "0" + minute;
			else
				mS = "" + minute;
				
			if( second < 10 )
				sS = "0" + second;
			else 
				sS = "" + second;
			
			timeNow = hS + ":" + mS + ":" + sS ;			
			return timeNow;
		}
		
		private void timeLive()
		{
			while(true)
			{
				this.timeLabel.Text = this.returnTime(); 	
				Thread.Sleep(1000);
			}
		}
		

		/// <summary>
		/// The main entry point for the application.
		/// </summary>
		static void Main() 
		{

			Application.Run(new MyForm());
		}

	}
}

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
jeudi 18 décembre 2008
Statut
Membre
Dernière intervention
25 avril 2010

Il y a un gros problème le processus continue de tourner même après avoir fermé le programme :/
Donc si on l'ouvre 3 fois et qu'on le ferme 3 fois il y a toujours 3 processus en cours dans le gestionnaire des tâches sachant qu'un processus prend plus ou moins 4Mo de RAM.
Messages postés
412
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 août 2007

C'est un peu beaucoup de faire une mise à jour toute les secondes je trouve :-/ J'avais fais le même système qui se met a jour toutes les minutes, et qui garde une précision redoutable lol

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.