c# timer

  • Onderwerp starter Onderwerp starter baws
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

baws

Terugkerende gebruiker
Lid geworden
9 apr 2010
Berichten
1.258
ik heb een form met een stoplicht gemaakt met verschillende afbeeldingen (rood groen oranje allemaal aan)
ik wil hierbij een timer maken die om de 10 seconden iets doet.
als het rood is word hij na 10 seconden groen.
als hij groen is word hij na 10 seconden oranje.
als hij oranje is word hij na 3 seconden rood

weet iemand hoe ik dit aanpakt.
ik werk met visual basic 2010
 
dit is de oplossing

Code:
 Dim tijden As Integer() = {0, 10, 10, 3} 'tijden(0) geeft aan welke stand hij is, tijden(1 t/m de laatste) geven de sec aan dat hij telkens wacht
    Private Sub Timer1_Tick() Handles Timer1.Tick
        tijden(0) += 1
        If tijden(0) > tijden.Length - 1 Then
            tijden(0) = 1
        End If
        Timer1.Interval = tijden(tijden(0)) * 1000 'Sec --> mSec
    End Sub

het maakt niet uit hoelang je de array tijden maakt , de code kan ermee werken,
maar tijden(0) moet je niet invullen want die houdt bij welke tijd hij moet uitvoeren:)
 
zou je kort commentaar bij elke regel kunnen geven?
en moe tik gewoon een timer van de toolbar slepen naar mijn form?
en wat is tric_timer?

bedankt voor je hulp

met vriendelijke groet
 
en wat is tric_timer?
bedoel je timer1.tick? <-- dat is elke keer dat de timer 'slaat' (dus als de tijd om is)


ik neem aan dat je bedoelt wat ik ervan gemaakt heb en niet hoe vb 2008 werkt, als dat wel zo is zeg het dan even

Code:
Dim tijden As Integer() = {0, 10, 10, 3}
'tijden(0) is de stand waarin het stoplicht staat en wat de geselecteerde tijd is:
'tijden(0) = 1 <-- rood licht (10 sec)
'tijden(0) = 2 <-- groen licht (10 sec)
'tijden(0) = 3 <-- oranje licht (3 sec)

    Private Sub Timer1_Tick() Handles Timer1.Tick <-- slaat dus elke keer als de tijd om is
        tijden(0) += 1 '<-- gaat naar de volgende 'stand'
        If tijden(0) > tijden.Length - 1 Then '<-- als de stand groter is dan het aantal opgegeven tijden dan wordt hij naar 1 gereset
            tijden(0) = 1
        End If
        Timer1.Interval = tijden(tijden(0)) * 1000 'Sec --> mSec
 '^ timer1 <-- de timer
'timer1.interval <-- het aantal millisec. tot de volgende keer dat de timer slaat
'tijden(tijden(0)) <-- de tijd tot de volgende keer dat de timer slaat

'en hier kun je dan een andere sub aanroepen bijv:
SetColor(tijden(0))

    End Sub

sub SetColor(Stand as integer)
'hier kun je dus de kleur instellen:

end sub
 
Laatst bewerkt door een moderator:
mm sorry maar ik snap er echt niets van.
ik heb nog nooit met timers gewerkt, ik kan denkik beter met 1 ding beginnne.
hoe stel ik een timer in zodat ik hem zelf kan starten en stopen en het maar 1 x doet.
moet ik iets slepen uit de toolbox (timer) of is dat niet nodig.
ik weet echt nog niks van timers dus de basis zou mooi zijn.
 
hier zijn de plaatjes die ik gebruik.
maar zou je wel kunnen zeggen of ik zo'n timer van de toolbar moet slepen?
 

Bijlagen

  • Stoplicht Rood.jpg
    Stoplicht Rood.jpg
    39,6 KB · Weergaven: 59
  • Stoplicht Tilt.jpg
    Stoplicht Tilt.jpg
    41 KB · Weergaven: 58
  • Stoplicht Oranje.jpg
    Stoplicht Oranje.jpg
    40,7 KB · Weergaven: 59
  • Stoplicht Groen.jpg
    Stoplicht Groen.jpg
    39,8 KB · Weergaven: 52
ja, dat kun je wel het beste doen

er is ook een manier hoe je dat niet hoeft te doen, maar dat is stukken minder simpel

je start hem met timer1.start()
en stopt hem zo timer1.stop()
 
Bedankt voor je hulp en al je moeite hier heb ik echt wat aan !
top
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan