jasocul hat folgendes geschrieben : |
Gagga hat folgendes geschrieben : | Am Ende der Routine wird das Hochzählen der Progressbar-Positionen im Zeitraffer nachgeholt |
Wenn die Progressbar nur durch den Timer verändert wird, deutet das obige Verhalten darauf hin, dass der Timer wieder aktiv wird, bevor er überhaupt komplett abgearbeitet wurde. Das würde bedeuten, dass das Timer-Intervall zu kurz ist. Deswegen auch der eine Tipp das Enabled innerhalb des Timers aus- und anzuschalten. |
Der Timer sendet jede Sekunde eine Nachricht an die Nachrichtenwarteschlange.
Damit diese Nachricht abgeholt und verarbeitet wird, muss deine Anwendung regelmäßig Application.Processmessages() aufrufen.
Scheinbar läuft aber ein Programmteil, wo das nicht passiert. Entsprechend stauen sich die Nachrichten.
Wenn das Programmteil beendet ist, werden durch das nächste Application.Processmessages() alle aufgestauten Nachrichten verarbeitet.
Folge ist dieser "Zeitraffereffekt".
Den Timer innerhalb des OnTimer-Ereignis abzuschalten macht Sinn, wenn Application.Processmessages() im OnTimer-Ereignis selbst (auch indirekt) aufgerufen wird.