Timer in class?

hallo!

wie kann ich einen timer in einer klasse erstelleun und dann mit events arbeiten?

habs mit

dim tmr as new system.timers.timer

versucht. anschließend das „interval“ auf 400ms gesetzt und enabled = false.

starten ließ er sich auch aber mit dem event tick wirds dann schwer … :smiley: wie löst man das?

thx TE

Hallo,

Läuft der Timer denn in das Event Tick?
Wenn ja, dann lass deine Klasse einfach ein Event mit RaiseEvent abschicken :wink:

MfG Alex

mhm das versteh ich noch nicht do ganz :smile:

kannst du mir nen beispiel source schicken? raiseevent is mir komplett neu :frowning:

Hallo TranceEnergy

mhm das versteh ich noch nicht do ganz :smile:

Ergo hast du dich nicht informiert, denn so schwer ist das nicht!

kannst du mir nen beispiel source schicken? raiseevent is mir
komplett neu :frowning:

Na dann schau mal :wink:

'Code in der Form, benötigt einen Button
Public Class Form1

 Private WithEvents MyTest As Test 'wir declarieren MyTEst auf die Klasse und sagen durch WithEvents
 'das wir auf seine Ereignisse reagieren wollen. 

 Private Sub Button1\_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 If MyTest Is Nothing Then 'Wenn MyTest = Nothing ist dann
 MyTest = New Test 'Wir bilden eine Instanz von der Klasse Test
 MyTest.Run() 'Wir rufen die Methode Run auf, die den Timer startet
 End If
 End Sub

 Private Sub MyTest\_IsRunning() Handles MyTest.IsRunning 'Ereignis wird von der Klasse ausgelöst
 MsgBox("Timer is Running...") 'Wir lassen uns anzeigen das der Timer läuft
 End Sub

 Private Sub MyTest\_TimerTick(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyTest.TimerTick 'Ereignis wird von der Klasse ausgelöst
 Static Counter As Integer 'Eine statische Variable zum zaehlen
 Counter += 1 'Wir erhöhen den Wert um 1
 Me.Text = Counter.ToString & " Aufruf vom Timer ..." 'wir lassen uns die Aufrufe anzeigen 
 End Sub
End Class


'Code in der Klasse Test


Public Class Test

 Protected Friend Event TimerTick(ByVal sender As System.Object, ByVal e As System.EventArgs) 'Wir declarieren das Ereignis welches ausgelöst werden soll
 Protected Friend Event IsRunning() 'Wir declarieren noch ein Ereignis
 Private TMR As Timer 'Wir definieren TMR als Timer

 Protected Friend Sub Run() 'Die Methode Run
 If TMR Is Nothing Then 'Wenn TMR = Nothing ist
 TMR = New Timer 'Wir erstellen eine Instanz vom Timer
 TMR.Interval = 100 'Wir setzen den Intervall auf 100ms
 AddHandler TMR.Tick, AddressOf MyTimerTick 'Der Timer wird dynamisch erstellt -\> Wir brauchen ein Addhandler
 'um auf das Event Tick vom Timer zu reagieren. Wir verweisen nach der Sub MyTimerTick
 TMR.Enabled = True 'Wir schalten den Timer ein
 RaiseEvent IsRunning() 'Wir lösen das Ereignis IsRunning aus
 Else 'Wenn schon eine Instanz vom Timer läuft
 RaiseEvent IsRunning() 'Wir lösen das Ereignis IsRunning aus
 End If
 End Sub

 Private Sub MyTimerTick(ByVal sender As System.Object, ByVal e As System.EventArgs) 'Wenn der Timer, seine Methode Tick auslöst
 RaiseEvent TimerTick(sender, e) 'Wir lösen das Ereignis TimerTick aus und schicken den Sender so wie die EventArgs mit
 End Sub
End Class

Ich hoffe es ist verstaendlich :wink:

MfG Alex

na des is doch ma was :smiley:

vielen dank! das hat geholfen