Diskussion:Gambas: Timer
Nach meinen Beobachtungen arbeitet der Timer bei GAMBAS nicht zuverlässig in dem Sinn, dass man sich nicht darauf verlassen kann, dass die Routine Timer1_Timer() pünktlich ausgeführt wird: Wenn gerade etwas anderes bearbeitet wird, dann wird das bis zu Ende ausgeführt, erst dann kommt Timer1_Timer dran. Das kann zu Problemen führen bis hin zur Unbrauchbarkeit des Programms. Man würde sich wünschen, dass die Routine mit höherer Priorität gestartet wird; noch besser wäre es, wenn man die Priorität setzen könnte.
Hier ein Programmbeispiel, für das man benötigt:
einen Timer: SekundenTakt einen Button: Button1 Labels: Datum Zeit Time0 Time1
PUBLIC SUB Form_Open() 'Timer starten SekundenTakt.Delay = 1 SekundenTakt.Enabled = TRUE END SUB PUBLIC SUB SekundenTakt_Timer() Datum.Text = fHeute() Zeit.Text = fUhrzeit() END SUB PUBLIC SUB Button1_Click() DIM i AS Long DIM M AS Single DIM intMultiplikationen AS Integer = 50 * 1000 * 1000 Time1.Text = "" Time0.Text = Zeit.Text WAIT 0.001 FOR i = 0 TO intMultiplikationen M = 1234567.8 * 2345678.9 NEXT WAIT 0.001 Time1.Text = Zeit.Text END SUB PUBLIC FUNCTION fHeute() AS String DIM Tag AS String = CStr(Day(Now)) DIM Mon AS String = CStr(Month(Now)) DIM Jar AS String = CStr(Year(Now)) IF Len(Tag) = 1 THEN Tag = "0" & Tag IF Len(Mon) = 1 THEN Mon = "0" & Mon RETURN Tag & ". " & Mon & ". " & Jar END FUNCTION PUBLIC FUNCTION fUhrzeit() AS String DIM St AS String = CStr(Hour(Now)) DIM Mi AS String = CStr(Minute(Now)) DIM Se AS String = CStr(Second(Now)) IF Len(St) = 1 THEN St = "0" & St IF Len(Mi) = 1 THEN Mi = "0" & Mi IF Len(Se) = 1 THEN Se = "0" & Se RETURN St & " : " & Mi & " : " & Se & " Uhr" END FUNCTION
Gruß
Hans35
Beginne eine Diskussion über Gambas: Timer
Diskussionsseiten sind Orte, an denen Leute darüber diskutieren, wie man den Inhalt von Wikibooks so gut wie möglich gestalten kann. Du kannst diese Seite benutzen, um eine Diskussion mit anderen zu beginnen, wie Gambas: Timer verbessert werden kann.