Countdown - compte-à-rebours

Soyez le premier à donner votre avis sur cette source.

Vue 17 698 fois - Téléchargée 783 fois

Description

Voila, en fait je cherchais un petit compte à rebours tout simple pour calculer le temps restant avant l'achat d'une nouvelle voiture. N'ayant pas trouvé, j'ai développé ce dont j'avais besoin : un c-à-r simple.

Je l'ai customisé un peu au niveau du graphisme mais il reste de nombreuses améliorations possibles. Encore une fois, mon but n'est pas de faire une appli aux fonctions exhaustives.

Merci à celui (il se reconnaîtra) qui a posté la source sur la gestion des forms ovales...

Source / Exemple :


Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Collections
Imports System.ComponentModel
'
Public Partial Class MainForm
	Public Sub New()
		' The Me.InitializeComponent call is required for Windows Forms designer support.
		Me.InitializeComponent()
		'
	End Sub
	
    Dim I As Integer 'Inactive 
    Dim DepartX As Short 'Used to move form
    Dim DepartY As Short 'Used to move form
    Dim H As Integer 'Hours
    Dim M As Integer 'Minutes
    Dim S As Integer 'Seconds
    Dim T As String  'Time
    Dim MyError As String 'Error
    'Dim Resultat As Integer 'Value for countdown

    Private Sub Form1Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Label1.Text = System.DateTime.Now.ToLongTimeString
    End Sub

	Private Sub Button1Click(ByVal sender As Object, ByVal e As EventArgs)
		H = textBox1.Text
        M = textBox2.Text
        S = textBox3.Text
    If H = 0 And M = 0 And S = 1 Then System.Windows.Forms.MessageBox.Show( "Seconds must be greater than 1 !" ) : Timer2.Stop
        Timer2.Enabled = True
        Timer2.Start
        Me.Button1.Enabled = "False"
        Me.Button2.Enabled = "True"
        Me.Button2.Text = "stop"
	End Sub
		
	Private Sub Button2Click(ByVal sender As Object, ByVal e As EventArgs)
		Me.Button1.Enabled = "True"
		Me.Button2.Enabled = "False"
		Timer2.Stop
		Label2.Text = "00:00:00"
	End Sub
	
	Private	Sub Button3Click(ByVal sender As Object, ByVal e As EventArgs)
		Me.Close
	End Sub
	
	Sub Timer1Tick(ByVal sender As Object, ByVal e As EventArgs)
		'This timer is permanently active as it shows the system time
        Label1.Text = System.DateTime.Now.ToLongTimeString
	End Sub
	
	Sub Timer2Tick(ByVal sender As Object, ByVal e As EventArgs)
		'Count down
        S = S - 1
        If S = 0 Then S = 60 : M = M - 1
        If M = 0 Then M = 60 : H = H - 1
        If H = 0 Then H = 24
        
        'Small errors management
        If S > 60 OR M > 60 OR H > 24 Then System.Windows.Forms.MessageBox.Show( "Value does not exist !" )

        T = TimeSerial(H, M, S)
        Label2.Text = T

		'Plays a sound when countdown reaches 00:00:00
		Dim Snd As New System.Media.SoundPlayer("C:\Windows\Media\tada.wav")
				
        If T = "00:00:00" Then Timer2.Stop : System.Windows.Forms.MessageBox.Show( "Countdown reached !" ) : Me.Button2.Text = "reset" : Label2.Text = T : Snd.Play()
	End Sub
	
End Class

Conclusion :


Quelques bugs à corriger :

Erreur due à la gestion du déplacement de la form (lors de la compilation uniquement, pas d'influence sur le fonctionnement)
- Access of shared member, constant member, enum member or nested type through an instance; qualifying expression will not be evaluated. (BC42025)

--> je ne m'en suis pas occupé :/

Le son
- il faudrait plutôt mettre l'emplacement sous forme AppPathName ou un truc du genre au lieu de C:\Windows\Media...

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

neo2k2
Messages postés
126
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
9 novembre 2009
2 -
Je précise que le bug concernant le déplacement de la form n'apparaît qu'au moment de la compilation mais que le programme fonctionne parfaitement, je pense que cela est dû au fait que je sois sous SharpDevelopp...
TeBeCo
Messages postés
467
Date d'inscription
lundi 24 juin 2002
Statut
Membre
Dernière intervention
9 mars 2011
-
l'erreur est pas du a ScharpDevelopp mais a ton code apparement tu tentes d'utiliser un membre static depuis uen instance de classe alors que pour utiliser un membre static il faut specifier le nom de la classe :

dim toto as tata
toto.nonstatic()
tata.static()

alors que toi tu fait :
toto.static
neo2k2
Messages postés
126
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
9 novembre 2009
2 -
Je n'ai plus eu le problème depuis que je suis passé à VS2008...

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.