Scav Geschrieben 6. September 2002 Teilen Geschrieben 6. September 2002 Ich brauche einen Timer, der auch 30min oder so mitmacht, die Timer-Funktion kann ja nur 6xxxx Millisekunden... Wie kann ich das realisieren? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Scav Geschrieben 6. September 2002 Autor Teilen Geschrieben 6. September 2002 kann mir keiner helfen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 6. September 2002 Teilen Geschrieben 6. September 2002 Zähl doch einfach die Aufrufe Deines 6-Sekunden-Timers mit und mach nur bei jedem 300. Mal was Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
E-Sorcerer Geschrieben 11. September 2002 Teilen Geschrieben 11. September 2002 so hab ich das auch shcon mal gemacht, einfach eine Variable hochgezählt und dann die immer abgefragt... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
frankos Geschrieben 16. September 2002 Teilen Geschrieben 16. September 2002 Hi! Die beste Lösung ist wie so oft die Windows-API. Mit der Funktion SetTimer ist ein Intervall über Tage und Wochen möglich, ohne durch irgendwelche Schleifen den Prozessor unnötig zu belasten. Hier ein Beispiel (besteht aus einer Form und einem Modul): '---------------------------Anfang der Form------------------------------- Option Explicit Private Sub Form_Load() Call Init(1000) 'Initialisierung des Timers mit 1000 millisek End Sub Private Sub Form_Unload(Cancel As Integer) 'Wichtig: Reset des Timers vor Programmende!!! If TimerEnabled Then Call Terminate End Sub '----------------------------Ende der Form-------------------------------- '--------------------------Anfang des Moduls------------------------------ Option Explicit Private Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, _ ByVal nIDEvent As Long, ByVal uElapse As Long, _ ByVal lpTimerFunc As Long) As Long 'API zum Timer setzen Private Declare Function KillTimer Lib "user32" (ByVal hWnd As Long, _ ByVal nIDEvent As Long) As Long 'API zum Timer-Reset Public TimerEnabled As Boolean 'Zum Nachprüfen ob Timer gesetzt Private hTimer As Long 'Nummer des gesetzten Timers '(wird für Reset gebraucht!) Public Sub Init(lInterval As Long) 'Timer setzen hTimer = SetTimer(0, 0, lInterval, AddressOf TimerProc) 'Timer wird mit dem Intervall lInteval gesetzt, bei einem 'Timer-Ereignis wird die Sub TimerProc aufgerufen TimerEnabled = True End Sub Public Sub Terminate() 'Timer resetten (unbedingt bei Programmende!) Call KillTimer(0, hTimer) 'Reset des Timers mit der Nummer hTimer TimerEnabled = False End Sub Private Sub TimerProc(ByVal hWnd As Long, ByVal Msg As Long, _ ByVal idEvent As Long, ByVal dwTime As Long) 'Diese Sub wird bei einem Timer-Ereignis aufgerufen Static lIndex As Long 'Index zur Demo des Timers lIndex = lIndex + 1 Form1.Caption = lIndex End Sub '---------------------------Ende des Moduls------------------------------- Es ist etwas länger als konventionelle Lösungen, aber wie gesagt ist es die beste (weil Prozessorschonende) Lösung. cu, frankos Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.