Bonjour je cherche à créer un chronomètre sans utiliser les timers de la forme : 00H00min00s
Merci
Bonjour je cherche à créer un chronomètre sans utiliser les timers de la forme : 00H00min00s
Merci
Qui ne tente rien n'a rien !
Ce qui ne nous tue pas nous rends plus fort !!
Mon projet ZELDA en C++/Allegro
http://www.tutoworld.com - Le Forum -
Mes ressources Dotnet (cours, sources, tutos)
--------------------------------------------
+ + =
Ne pas oublier le Tag !
Peux-tu être plus precis car je ne pense pas que tu veuilles te dispenser d'un des trois timers de .Net, ton souci est-il le design à l'affichage ou réellement le controle sous -jascent
Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles
AU fait je voudrais un chronemetre précis et je voudrais cet affichage : 00H00min00s
Au fait quand je clique sur le bouton "connection" le chrono se declanche et des que je me deconnecte il s'arrete et je voudrais savoir le tps de ma connection en temps réel ( c'est à dire je veux voir les secondes défilées ) et elle doit s'afficher sous la forme ci-haut
Merci
Qui ne tente rien n'a rien !
Ce qui ne nous tue pas nous rends plus fort !!
Mon projet ZELDA en C++/Allegro
http://www.tutoworld.com - Le Forum -
Mes ressources Dotnet (cours, sources, tutos)
--------------------------------------------
+ + =
Ne pas oublier le Tag !
mais pourquoi ne veux - tu pas utiliser de Timer :
En fait, il suffit de créer un Timer avec comme intervale 1000 milisecondes ( 1 seconde ) et d'avoir une variable TempsDeConnection que tu incrémente toute les secondes ( il suffit de mettre à 0 lors de la connexion et récupérer la valeur lors de la déconnexion )
Après, tu pars du principe que
1 h = 60 min et 1 min = 60 s
De la vallée du vent ...
Distribution d'applications .NET avec DreamShield
DreamShield, Le site, forum, blog, wiki & Jeux
Mon blog, Cours et tutoriels pour apprendre C#, forum C#, Offres d’emploi développeur C#
c'est exactement ce que j'ai fait mais c'est imprecis ( le timer n'est pas tres precis ) y'a des decalage dans les secondes... C'est pour ca que j'aimerais trouver une autre methode !! Et de plus pas l'ecoulement du tps de connexion en tps réel...
Si vous avez des idées pour d'autres methodes ????
A+++
Qui ne tente rien n'a rien !
Ce qui ne nous tue pas nous rends plus fort !!
Mon projet ZELDA en C++/Allegro
http://www.tutoworld.com - Le Forum -
Mes ressources Dotnet (cours, sources, tutos)
--------------------------------------------
+ + =
Ne pas oublier le Tag !
Moi ça fait 1 an que je fais des comptes à rebour et etc.. avec un Timer et il n'y a pas d'imprécision, du moins tant que tu fait pas un traitement long dans l'évenement OnTimer ( je me contente de faire un NbSecs-- et c'est ok ).Envoyé par Aspic
De la vallée du vent ...
Distribution d'applications .NET avec DreamShield
DreamShield, Le site, forum, blog, wiki & Jeux
Mon blog, Cours et tutoriels pour apprendre C#, forum C#, Offres d’emploi développeur C#
et t'arrive à afficher le resultat comme ca : 00H00min01s, 00H00min02s, 00H00min03s .... 01H30min06s ...
Si oui alors je suis prenneur.
Qui ne tente rien n'a rien !
Ce qui ne nous tue pas nous rends plus fort !!
Mon projet ZELDA en C++/Allegro
http://www.tutoworld.com - Le Forum -
Mes ressources Dotnet (cours, sources, tutos)
--------------------------------------------
+ + =
Ne pas oublier le Tag !
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 Friend WithEvents LChrono As Label Friend WithEvents TChrono As Timer Private temps As TimeSpan Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load Me.TChrono.Interval = 999 Me.temps = New TimeSpan(0, 0, 0) Me.DisplayTime() Me.TChrono.Start() End Sub Private Sub DisplayTime() Dim s As String = Me.temps.ToString s = Replace(s, ":", "H", 1, 1) s = Replace(s, ":", "min", 1, 1) s &= "s" Me.LChrono.Text = s End Sub Private Sub TChrono_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles TChrono.Tick Me.temps = TimeSpan.op_Addition(Me.temps, New TimeSpan(0, 0, 1)) Me.DisplayTime() End Sub
Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles
J'ai corrigé un peu ton code mais y'a encore une erreur :
L'evenement tick est introuvable
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 Friend WithEvents LChrono As Label Friend WithEvents TChrono As System.Timers.Timer Private temps As TimeSpan Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load Me.TChrono = New System.Timers.Timer Me.TChrono.interval = 999 Me.temps = New TimeSpan(0, 0, 0) Me.DisplayTime() Me.TChrono.Start() End Sub Private Sub DisplayTime() Dim s As String = Me.temps.ToString s = Replace(s, ":", "H", 1, 1) s = Replace(s, ":", "min", 1, 1) s &= "s" Me.LChrono.Text = s End Sub Private Sub TChrono_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles TChrono.tick Me.temps = TimeSpan.op_Addition(Me.temps, New TimeSpan(0, 0, 1)) Me.DisplayTime() End Sub
Qui ne tente rien n'a rien !
Ce qui ne nous tue pas nous rends plus fort !!
Mon projet ZELDA en C++/Allegro
http://www.tutoworld.com - Le Forum -
Mes ressources Dotnet (cours, sources, tutos)
--------------------------------------------
+ + =
Ne pas oublier le Tag !
C'esty bon j'ai trouver ^^
Merci Neguib !!
Pour ceux que ca interesse voici le code correcte :
+++
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 Friend WithEvents TChrono As System.Timers.Timer Private temps As TimeSpan Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load Me.TChrono = New System.Timers.Timer Me.TChrono.Interval = 999 Me.TChrono.AutoReset = True Me.TChrono.Enabled = True Me.temps = New TimeSpan(0, 0, 0) Me.TChrono.Start() End Sub Private Sub DisplayTime() Dim s As String = Me.temps.ToString s = Replace(s, ":", "H", 1, 1) s = Replace(s, ":", "min", 1, 1) s &= "s" Label2.Text = s End Sub Private Sub TChrono_Elapsed(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs) Handles TChrono.Elapsed Me.temps = TimeSpan.op_Addition(Me.temps, New TimeSpan(0, 0, 1)) Me.DisplayTime() End Sub
Qui ne tente rien n'a rien !
Ce qui ne nous tue pas nous rends plus fort !!
Mon projet ZELDA en C++/Allegro
http://www.tutoworld.com - Le Forum -
Mes ressources Dotnet (cours, sources, tutos)
--------------------------------------------
+ + =
Ne pas oublier le Tag !
Envoyé par Aspicsi je te dis que mon code fonctionne c'est qu'il y a une excellente raisonEnvoyé par Aspic
Qu'as-tu fait à part ajouter dans le load ce qui normalement se trouve dans InitializeComponent je te croyais moins débutant que çà, là c'est sûr je me suis bien gourré
Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles
1) Je suis effectivement débutant mais j'espere que ca ne te derange pas...
2) L'evenement tick de ton code n'existais pas, je l'ai donc remplacer par un evenement elapsed
3) Le "Me.TChrono = New System.Timers.Timer" ne se trouve pas dans le InitializeComponent en tout cas pas chez moi.
4) Le me.DisplayTime() dans l'evenemetn Form_Load provoque un bug chez moi.
5) J'ai rajouter un Me.TChrono.AutoReset = True de telle sorte que l'evenement elapsed ne se produise pas qu'une seule fois
Voila en tout cas merci quand meme pour ton aide
PS: En aucun cas je n'est critiqué ton code
Qui ne tente rien n'a rien !
Ce qui ne nous tue pas nous rends plus fort !!
Mon projet ZELDA en C++/Allegro
http://www.tutoworld.com - Le Forum -
Mes ressources Dotnet (cours, sources, tutos)
--------------------------------------------
+ + =
Ne pas oublier le Tag !
pas du tout mais apparemment tu n'en tire pas conclusionEnvoyé par Aspic
Il y a 3 types de Timers, le plus couramment utilsé sur une Form est le System.Windows.Forms.Timer qui a bien evidemment l'evenement Tick. T'es assez grand pour conclure le reste. En faisant une petite recherche sur le forum tu aurais pû tomber sur plusieurs posts ou j'explique déjà cela en long et en large
As-tu accès à une doc MSDN ? si non je te suggères de paramétrer une page google dédiée à celà afin de faciliter tes recherches: (à mettre dans tes favoris)
MSDN en anglais
MSDN en français (1.0 et 1.1)
MSDN (2.0)
Mon code était effectivement un minimum, je ne pensais pas qu'il fallait tout t'expliquer y compris comment instancier une variable donc voilà tout le code de la page Test que j'avais fait pour te confirmer mes dires.
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 Option Explicit On Option Strict On Imports System Imports System.Diagnostics Imports System.ComponentModel Imports System.Windows.Forms Public Class Form1 Inherits System.Windows.Forms.Form Private temps As TimeSpan Public Sub New() MyBase.New() Me.InitializeComponent() End Sub Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() MyBase.Dispose(disposing) End Sub Private components As IContainer Friend WithEvents Bchrono As Button Friend WithEvents LChrono As Label Friend WithEvents TChrono As Timer <DebuggerStepThrough()> Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() Me.LChrono = New System.Windows.Forms.Label() Me.Bchrono = New System.Windows.Forms.Button() Me.TChrono = New System.Windows.Forms.Timer(Me.components) Me.SuspendLayout() Me.LChrono.Font = New System.Drawing.Font("Bitstream Vera Sans", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.LChrono.Location = New System.Drawing.Point(8, 16) Me.LChrono.Name = "LChrono" Me.LChrono.Size = New System.Drawing.Size(128, 23) Me.LChrono.TabIndex = 0 Me.LChrono.TextAlign = System.Drawing.ContentAlignment.MiddleCenter Me.Bchrono.Location = New System.Drawing.Point(176, 16) Me.Bchrono.Name = "Bchrono" Me.Bchrono.TabIndex = 1 Me.Bchrono.Tag = True Me.Bchrono.Text = "Stop" Me.TChrono.Interval = 999 Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(292, 273) Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Bchrono, Me.LChrono}) Me.Name = "Form1" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.Text = "Form1" Me.ResumeLayout(False) End Sub Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load Me.temps = New TimeSpan(0, 0, 0) Me.DisplayTime() Me.TChrono.Start() End Sub Private Sub DisplayTime() Dim s As String = Me.temps.ToString s = Replace(s, ":", "H", 1, 1) s = Replace(s, ":", "min", 1, 1) s &= "s" Me.LChrono.Text = s End Sub Private Sub TChrono_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles TChrono.Tick Me.temps = TimeSpan.op_Addition(Me.temps, New TimeSpan(0, 0, 1)) Me.DisplayTime() End Sub Private Sub Bchrono_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Bchrono.Click Dim b As Button = CType(sender, Button) Dim bool As Boolean = CType(b.Tag, Boolean) If bool Then Me.TChrono.Stop() b.Text = "Start" Else Me.TChrono.Start() b.Text = "Stop" End If b.Tag = Not bool End Sub End Class
Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles
ok pas de probleme
Qui ne tente rien n'a rien !
Ce qui ne nous tue pas nous rends plus fort !!
Mon projet ZELDA en C++/Allegro
http://www.tutoworld.com - Le Forum -
Mes ressources Dotnet (cours, sources, tutos)
--------------------------------------------
+ + =
Ne pas oublier le Tag !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager