Diskussion:Gambas: Timer
Abschnitt hinzufügenNach 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.