Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

Använd timern i ditt program

Postad 2004-10-25 av Pelle Johansson i sektionen ASP.NET, C#, Okategoriserat med 4 Kommentarer | Läst av: 3746, Betyg: 66%

Förord

En så enkel sak som att göra en klocka eller att göra en räknare som visas i ett textfält eller en label kan vara trixigt om man aldrig provat. Här följer därför ett snabbt exempel på hur det går till. Du kan även ladda hem exempelprogrammet. En länk finns nedan.
Innehåll
  » Vilka kontroller behöver vi?
  » Testa vad som händer
  » En räknare
  » Så avslutar vi med tiden
  » Starta vid ett visst tillfälle
  » Hämta programmet


Vilka kontroller behöver vi?

Börja med att skapa ett nytt vb-projekt och lägg dit en textbox, en label och ikonen som ser ut som ett tidtagarur - dvs timern. Nu har du de grundläggande delarna som behövs för att göra något.

Börja med att högerklicka och välja egenskaper på timern. En egenskap kallas .Interval. Denna parameter kan du fylla på med hur ofta timern skall köras. Det kan vara allt från 1-60000. Tiden du anger är alltså millisekunder. Så om du skriver exempelvis 600 så körs timern varje sekund. I vårat fall räcker det med var 3:e sekund så vi skriver där 1800.


Testa vad som händer

Genom att nu klicka på timern så får vi fram kod för denna. Vi kastar in en messagebox bara för att se om något händer var 3:e sekund


Private Sub Timer1_Timer()

MsgBox "hej"

End Sub


Testa nu programmet genom att trycka F5 så skall du få ett meddelande hej var 3:e sekund. För att avsluta programmet trycker du på stopp-knappen så går vi vidare.


En räknare

Om vi vill fylla textboxen med en räknare som går från 1 och uppåt ända tills du vill stanna programmet får vi först lägga in en variabel som vi inte tappar bort så därför lägger vi den överst i formuläret och kallar denna för exempelvis raknare.


Private raknare As Integer

Private Sub Timer1_Timer()

raknare = raknare + 1
MsgBox "hej " & raknare

End Sub


Det som händer nu är att messageboxen kommer skriva hej 1, hej 2, hej 3 osv. Vi flyttar därmed bort messageboxen och fyller vår textbox med detta istället.


Private raknare As Integer

Private Sub Timer1_Timer()

raknare = raknare + 1
Text1.Text = raknare

End Sub


Som du ser om du kör programmet så uppdateras textboxen var 3:e sekund med en siffra. Det du kan göra nu är att ändra interval till 600 igen, då händer detta varje sekund.


Så avslutar vi med tiden



Private raknare As Integer

Private Sub Timer1_Timer()

raknare = raknare + 1
Text1.Text = raknare
Label1.Caption = Now

End Sub


Nu har vi kommit så långt att vi har en liten snurra igång. Dock kanske vi vill att vår timer skall startas om, nollställas och liknande.

Du kan lägga till tre stycken knappar och på dessa välja följande:


Private Sub Command1_Click()
' reset
raknare = 0
End Sub

Private Sub Command2_Click()
' stoppa timern
Timer1.Enabled = False
End Sub

Private Sub Command3_Click()
' starta timern
Timer1.Enabled = True
End Sub



Starta vid ett visst tillfälle

I samma subrutin som timer-eventet uppstår kan vi nu även känna av om vi exempelvis bara en gång per dygn vill köra något och den övriga tiden låta programmet ligga i dvala. Då får du helt enkelt jämföra den aktuella tiden med din föreslagna tid och kontrollera i fall de överstämmer.



Private Sub Timer1_Timer()

If Now() => "17:21:15" Then
Msgbox "Nu skall vi meddela något"
End Sub

End Sub


Det här är en väldigt grov presentation av hur man bör göra, men principen är densamma oavsett om det är ett enkelt eller avancerat program. I vissa fall kanske man har en tabell eller inifil för att kontrollera vilket värde det är man skall jämföra med. I andra fall kanske man även skall "bocka av" att man gjort något så det inte görs igen. Det finns som sagt var många varianter.


Hämta programmet

Du kan hämta hem det lilla programmet genom att klicka här. Om du inte har vb6 installerat så kan du först köra och testa när det är installerat. Det finns även en gratisversion av VB5 att hämta hem, se blandat arkiv/servicepacks för mer information.

Jag hoppas nu du fått en liten inblick i att arbeta med timern för att bygga egna program där något skall ske på intervall. Man kan faktiskt bygga rätt avancerade program med detta enkla hjälpmedel. Ta ett sådant exempel att man hämtar program eller filen från en viss katalog på ett visst intervall, flyttar filerna eller ftp:ar dom till en server - alla möjligheter finns. Det är bara fantasin som sätter stopp på vad som går att göra. Lycka till.
Upp

4 Kommentarer


  1. Simon Dahlbacka
    26 okt 2004

    sedan när går det 600 millisekunder på en sekund? Det är ju en "contradiction in terms" i och med att milli=tusen.


  2. Roger Alsing
    27 okt 2004

    som redan påpekat , det går väl iaf 1000 millisekunder på en sekund. och dessutom så kör windowsforms timern via ett wm_timer message i wndprocen och det avfyras med 13 millisekunders mellanrum , så alla intervall under 13 millisekunder gör ingen skillnad.


  3. Jonas Rembratt
    27 okt 2004

    Är du verkligen säker på att det är 13ms fortfarande. Jag vill minnas att introduktionen av DirectX i operativet betydde en mer högupplöst timer. Det var flera år sedan jag pysslade med dessa frågor (spelprogrammerade ett tag) men jag tror Windows nuvarande timer är snabbare.


  4. Jonas Rembratt
    27 okt 2004

    Jag skrev en liten testapplikation för att kolla det reella intervallet och, med testkodens overhead, hamnade jag konsekvent på 15ms. Jag mindes fel helt enkelt: Det tidigare verkliga intervallet tror jag låg på 60 ms och nu är det alltså ca 13.

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 153
27 952
271 704
908
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies