Comment accéler un timer à donf' de chez donf' ?!!
vegetalain
Messages postés747Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention11 août 2022
-
14 mai 2009 à 14:50
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
15 mai 2009 à 09:42
Salut, j'ai envie de me faire une machine à voyager dans le temps (mais qui ne marcherai pas dans la réalité :D)
Genre le défilement des dates, des heures tout ça, comme dans le film "la machine à voyager dans le temps"...
Je sais faire une horloge complète genre :
seconde
minutes
heures
jours
mois
année
siècle
mais qui puisse aussi speeder comme pas possible, en restant cohérente, ben nan...
Le fait est que concernant les timers, j'arrive pas à descendre en dessous du "1", parce que quand je met à 1, il n'y a guère que les secondes voire les minutes, et très très peu, les heures qui speedent, le reste se traine un peu... et pour passer d'un jour à l'autre on a le temps de dormir quoi.
Pour l'instant j'ai fait un truc bidon, avec les ss, mm et hrs qui speedent comme des malades, mais les 3 données ne se suivent pas, bien sûr...
Et j'ai appliqué le 1 aux jours. Les mois évoluent et les années e les siècles, avec cohérence...
Une idée pour contrer ce "contre-temps" et faire un truc cohérent des Secondes aux Siècles? :D
A voir également:
Comment accéler un timer à donf' de chez donf' ?!!
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 14 mai 2009 à 15:05
un timer ne descendra pas a un intervalle de 1 milliseconde.
encore qu'avec une valeur si basse, RIEN ne garanti son exactitude...
quand a l'interet de la chose...
Private Sub Form_Load()
Dim nTime As Long
Me.Show
Do
nTime = nTime + 789
If (nTime And &H800) = 0 Then
Label1.Caption = DateAdd("s", nTime, Date)
DoEvents
End If
Loop
End Sub
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 14 mai 2009 à 15:12
Salut
Curieux projet, sympa
Impossible de te dire ce qui cloche dans ton affaire sans avoir le code sous les yeux.
La seule manière d'être cohérent entre toutes ces données, liées par des coefficients, est de n'avoir qu'une seule variable.
C'est cette variable qu'il faut manipuler dans ton Timer qui tourne à donf de super donf de la mort.
Après chaque modif de cette valeur, il faudra recalculer les ss, nn, hh, dd, mm, yy, cc ... et les afficher dans tes Labels.
Pour des dates courantes (de notre époque), les fonctions DateDiff, DateAdd, DatePart ... seraient toute indiquée, mais il me semble elles ne savent fonctionner qu'entre 1750 et 2099 (à confirmer)
Sinon, il ne reste plus qu'à calculer toi même ces éléments à partir d'un chiffre qui représenterait le nombre de secondes écoulées depuis le 1er janvier de l'an 1 et vérifier que ce chiffre tienne dans un double.
Le principe de calcul des dates est le même que pour les puissances : Il faut d'abord traiter l'extraction du plus gros chiffre = le siècle :
Soit X mon chiffre
Soit Y le nombre de secondes dans un siècle.
A:
Si X - Y > 0 alors
Siècles = Siècles + 1
X = X - Y
Reboucle en A:
Quand cette boucle sera terminée, il suffira d'en faire une autre avec les années :
Soit X mon chiffre (diminué des siècles du dessus)
Soit Y le nombre de secondes dans un an
B:
Si X - Y > 0 alors
Années = Années + 1
X = X - Y
Reboucle en B:
et ainsi de suite
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
vegetalain
Messages postés747Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention11 août 2022 14 mai 2009 à 15:22
Merci pour la rapidité de vos réponses ! J'ai vb au taf mais je ne l'utilise pas, j'ai quand meme testé ton code Renfield, ça tue, rien à dire !!!!!!!! Merci...
Ce soir je vais essayer de voir, Jack, ce que tu as dis, et je mettrais aussi le code que j'avais fait, à titre d'info uniquement puisque... c'est surclassé là, mdr !
vegetalain
Messages postés747Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention11 août 2022 14 mai 2009 à 15:24
Hm, pour l'intéret, c'est juste pour délirer, cela dit ça peut etre utiliser comme... une appli orienté histoire pour des élèves qui sait? Acitiver une machine à remonter le temps c'est toujours plus marrant que de feuilleter un bouquin !!
Vous n’avez pas trouvé la réponse que vous recherchez ?
vegetalain
Messages postés747Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention11 août 2022 14 mai 2009 à 15:37
vivivi, j'ai remplacer les 789 par 1, j'ai vu que la vitesse variait... :), si j'ai le temps je vais emprunter VB à mon collègue pour faire des essais, j'ai hate de revenir en 1986 pour aller voir des super films au ciné
vegetalain
Messages postés747Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention11 août 2022 15 mai 2009 à 09:16
J'ai pas eu le temps encore de zieuter, des trucs urgent à faire, comme d'hab... j'ai mis ma source d'essai d'avant mon message :
http://vegetalain.free.fr/0.rar
Renfield, ta soluce est vraiment cool, mais j'arrive pas trop à la "parceliser" dans plusieurs label, hm, je vais me pencher sur celle de Jack on va bien voir... dans... la limite de temps que je trouverais, hihihi !h