For det første: Du kan ikke bruge timere til at måle tid, hvis det skal være bare nogenlunde præcist.
For det andet: Det loop du har lavet tager under et millisekund at gennemløbe, så resultatet vil være nul alligevel.
Gør sådan i stedet: I et modul indsættes: Declare Function GetTickCount Lib "kernel32" () As Long -GetTickCount returnerer tiden der er gået siden Windows blev startet i millisekunder.
Din kode rettes til:
Dim Timer1_Start As Long Dim Timer1_Stop As Long Dim i As Long
Tjacob >> Vil GetTickCount funktionen kunne håndtere flere forskellige tidsregistreringer på en gang. F.eks. jeg vil gerne måle tiden to forskellige steder.
Ja, du kan bruge den så meget du vil. Du skal bare holde styr på dine variable.
GetTickCount returnerer blot resultatet fra en tæller der starter når du tænder din maskine (når Windows loades), og så ellers står og tæller millisekunder.
Den giver IKKE noget billede af tidspunktet, men kan kun bruges relativt. Altså til at måle tidsINTERVALLER.
Ja det har jeg helt sikkert. Hvad mener du med grafisk? En søjle der vokser eller lignende? Kunne du være lidt mere specifik? Hvad skal tælles? Hvor længe? Er formen hele tiden i fokus?
Hvis du skal tælle hele sekunder kan du sagtens bruge en Timer. F.eks. sådan:
Public sTime, mins, secs
Private Sub Command1_Click() If Command1.Caption = "Start" Then Command1.Caption = "Stop" Timer1.Enabled = True ElseIf Command1.Caption = "Stop" Then Command1.Caption = "Start" Timer1.Enabled = False End If sTime = 0 mins = 0 secs = 0 End Sub
Private Sub Timer1_Timer() Dim a, minsa
a = Time If sTime < a Then sTime = a secs = secs + 1 If secs = 60 Then mins = mins + 1 secs = 0 End If If mins = 100 Then mins = 0 If secs < 10 Then secs = "0" & secs If mins < 10 Then minsa = "0" & mins Text1.Text = minsa & ":" & secs End If
End Sub
NB: Din Timers interval bestemmer du selv. Jo mindre interval jo mere præcist, men også mere systemkrævende. 200 passer nogenlunde. Så tjekker den 5 gange i sekundet. Med denne kode SKAL caption på din knap være: "Start" til at begynde med.
tjacob >> Undskyld det var vist mig der skulle have været mere præcis i min formulering.
Det jeg ønsker er en tekst timer/tæller brugeren kan se i selve applikationen. Dvs. at denne tæller opdateres hvert sekund og vises i en label som mm:ss
Jamen det er da også det koden ovenfor gør!?? -Bortset fra at tiden skrives til Text1. Det kan du jo blot lave om til en Label.
Prøv at tage en helt tom form. Indsæt en knap Command1, og sæt dens Caption til "Start". Indsæt en timer Timer1, og sæt dens interval til 200, og Enabled til "False". Indsæt en tekstboks Text1. Kopier ovenstående kode direkte ind i formen.
Undskyld det er mig der sover - jeg skulle nok have gået lidt tideliger i seng.
Ovenstående eksempel virker til dels. De eneste problem er at Timeren i textboxen opdateres ikke automatisk. De eneste der står når man trykker på Start knappen er 0:01. Så den tæller ikke automatisk op så der står 0:02, 0:03 osv.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.