In einem Programm verwende ich einen Timer um regelmäßig etwas zu berechnen und zu zeichnen. Leider bin ich häufig mit dem Zeichnen noch nicht fertig, wenn der Bildschirm das nächste Bild zeichnet, sodass nur ein Teil des Gewollten gezeichnet wird, und es zu Flackern kommt. Mein Bildschirm zeigt 60 Bilder pro Sekunde an. Also würde ich gerne jede Sechzigstelsekunde nach einer Bildschirmausgabe komplett zum Zeichnen ausnutzen. Dazu sind meines Erachtens folgende zwei Bedingungen zu erfüllen:
1. Das Starten des Timers muss unverzüglich nach einer Bildschirmausgabe erfolgen.
2. Der Timerinterval muss der Hertz-Zahl des Bildschirm entsprechen. 1000 durch 60 sind 16 2/3. Timer.Interval erfordert aber leider eine ganze Zahl bzw. ein "LongWord".
Bei diesen beiden Problemen weiß ich nicht weiter. Daher hoffe ich auf eure Hilfe.
So sieht es bisher aus:
Code: Alles auswählen
Timer1:=TTimer.Create(self);
Timer1.OnTimer:=@Timer1Timer;
Timer1.Interval:=1000/60;