| |
Visual-Basic EinsteigerRe: gefährliche Schleifen | | | Autor: Preisser | Datum: 03.10.10 19:02 |
| Naja, so schlecht ist das eigentlich nicht. Ich hatte bisher noch nie irgendwelche Probleme mit dem Timern. Wie bereits andere gesagt haben, gibt es ja unter VB6 den DoEvents-Befehl, den du verwenden kannst, wenn du zeitintensiven Code ausführst und dabei die GUI weiterhin reagieren soll. Das kann man z.b. benutzen, wenn eben etwas länger dauert zum Berechnen und man den Benutzer mit einer Progressbar über den Fortschritt der Berechnung informieren will.
Falls du trotzdem beispielsweise in einem Timer Code ausführst, der evtl. länger dauert, und du aber willst, dass der Timer z.b. alle 2 Sekunden den Code ausführt (also nicht "stehenbleibt", wenn der Code länger braucht), kannst du ja folgenden Trick benutzen:
Setze das Intervall des Timers anstatt 2000 ms z.B. auf 20 ms, und speichere in einer Variable, wann das letzte Mal der Timer aufgerufen wurde. Wenn das länger als 2 Sekunden her ist, setze die Variable auf den aktuellen Wert und führe den Code aus.
Beispiel:
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Sub Timer1_Timer()
Static TimerIntervall As Long
Static LetzterTimerAufruf As Long
TimerIntervall = 2000
If LetzterTimerAufruf = 0 Or (GetTickCount - LetzterTimerAufruf > _
TimerIntervall) Then
LetzterTimerAufruf = GetTickCount
' Code zum Ausführen
' ...
' Ende Code zum Ausführen
End If
End Sub Die Variable TimerIntervall gibt dann das Intervall des Timers an (hier: 2 Sekunden).
Zwischen 'Code zum Ausführen' und 'Ende Code zum Ausführen' kommt dann der Code, der normalerweise in dem Timer stehen würde.
Hier wird die API-Funktion GetTickCount() verwendet, da diese die Zeit seit dem Start des Betriebssystems in Millisekunden zurückgibt, unabhängig von der eingestellten Systemzeit (es hat also keine Auswirkungen, wenn während der Ausführung des Programms die PC-Zeit geändert wird).
Beitrag wurde zuletzt am 03.10.10 um 19:23:46 editiert. | |
| 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 |
|
|
Neu! sevPopUp 2.0
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 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
|
|