vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Eventgesteuert das Ganze (Teil 2) 
Autor: Drapondur
Datum: 12.12.04 00:01

Weiter im Dll-Projekt eine Klasse namens ApiTimer:
Option Explicit
 
Private myId&, myInterval&
Private myDontWait As Boolean
Private myShouldEnable As Boolean
 
Public Event Timer()
 
'Wenn DontWait = true, dann feuert der Timer-Event schon
'sofort, wenn der Timer mit Enanbled = true gestartet
'wird
Public Property Get DontWait() As Boolean
   DontWait = myDontWait
End Property
 
Public Property Let DontWait(nVal As Boolean)
   myDontWait = nVal
End Property
 
 
'Der Timer ist aktiviert, wenn seine API-Id ungleich null ist
Public Property Get Enabled() As Boolean
   Enabled = (myId <> 0)
End Property
 
'Wenn der Timer mit Enabled = true gestartet wird,
'startet er nach jedem TimerEvent wieder von Neuem
'(solange er im Eventhandler der Timer nicht angehalten wird)
'vgl.: Function Start
Public Property Let Enabled(nVal As Boolean)
   'Den Wert für Enabled extra merken
   'falls Property Enabled im Ereignishandler
   'verändert wird (siehe: TmrCallback)
   myShouldEnable = nVal
   If nVal = True Then
      'den Timer nur Starten, wenn das Intervall grösser 0 ist
      If myInterval > 0 Then
         Start myInterval
         'wenn der Timer-Event sofort beim Starten
         'des Timers des erste Mal ausgelöst werden soll,
         'tun wir das jetzt auch
         If myId <> 0 And DontWait Then
            RaiseEvent Timer
         End If
      End If
   Else 'Timer anhalten
      If myId <> 0 Then
         Quit
      End If
   End If
 
End Property
 
'Intervall des Timers in Millisekunden
Public Property Get Interval() As Long
   Interval = myInterval
End Property
 
Public Property Let Interval(nVal&)
   myInterval = nVal
End Property
 
'Wenn der Timer vom die Klasse aufrufenden Code mit Function Start
'gestartet wird, wird der Timer-Event nur einmal abgefeuert
'und der aufrufende Code muss den Timer neu starten.
'Wenn's weitere Timer-Events geben soll, muss der Timer im aufrufenden
'Code neu gestartet werden
'vgl.: Property Get Enabled
'Start gibt die ID des API-Timers zurück
'oder 0 bei Misserfolg
Public Function Start(lngInterval&) As Long
   If myId <> 0 Then
      Start = myId
      Exit Function
   End If
   myInterval = lngInterval
 
   myId = VBStartTimer(ObjPtr(Me), lngInterval)
 
   Start = myId
End Function
 
'Hält den Timer an
Public Function Quit() As Long
   If myId <> 0 Then
      'Timer nur löschen, wenn es
      'tatsächlich auch noch einen
      'Timer gibt
      Quit = VBKillTimer(myId)
      myId = 0
   End If
End Function
 
'Diese Sub wird vod moTimer.TimerProc aufgerufen
'wenn der Timer ausgelöst wird
Friend Sub TmrCallBack()
   'Timer löschen, damit der Event erst voll
   'abgearbeitet werden kann, bevor der
   'nächste Event kommt
   Quit
   RaiseEvent Timer
   If myShouldEnable Then
      Start myInterval
   End If
 
End Sub
 
Private Sub Class_Initialize()
   myInterval = 1000
End Sub
 
Private Sub Class_Terminate()
   Quit
End Sub
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
zeit berechnung1.177vbmomo09.12.04 09:48
Re: zeit berechnung822TCPR09.12.04 17:45
Re: zeit berechnung748Doom09.12.04 18:00
Re: zeit berechnung791mm78pr09.12.04 18:07
Re: zeit berechnung 839Doom09.12.04 18:20
Re: zeit berechnung791TCPR10.12.04 12:05
Re: zeit berechnung720Doom11.12.04 16:08
Re: zeit berechnung736Kinman11.12.04 20:41
Eventgesteuert das Ganze (Teil 1)1.092Drapondur12.12.04 00:00
Re: Eventgesteuert das Ganze (Teil 2)831Drapondur12.12.04 00:01
Re: Eventgesteuert das Ganze (Teil 3)815Drapondur12.12.04 00:09
Re: Eventgesteuert das Ganze (Teil 3)771Kinman12.12.04 02:08

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel