> Aber wofür dient das Random(10) und das WindowEvent() ?
also, beim Random muss ich raten:
er wollte keinen counter einbaun für "jedes zehnte mal".
das WindowEvent soll wohl dazu dienen, die änderung in der anzeige sofort umzusetzen.
ist aber verdammt unsauber.
klar, SetGadgetState erzeugt ein event und schiebts in die queue,
und ein einzelnes WindowEvent() holt ein event von der queue und verwirft es (der rückgabewert wird ja nicht ausgewertet),
aber wenn da zufällig noch ein anderes event in der queue war, verwirfst du das falsche.
besser weglassen.
.....ich hab mir auch nicht den kompletten code durchgelesen,
war nur aktuell auf deine frage angesprungen.
wenn es innerhalb einer normalen eventschleife liegt, wird die aktualisierung ja beim nächsten durchlauf ausgeführt.
ich würde es also so schreiben:
Code: Alles auswählen
ActCount +1
If ActCount > 10
ActCount = 0
Loc = Int(Loc()/Lof()*290)
SetGadgetState(4, Loc)
EndIf
das ist so schon ok, weil das aktualisierung-event nur jeden zehnten durchlauf erzeugt wird.
man muss vorsichtig sein, nicht in jedem durchlauf solche events zu erzeugen, weil sonst die queue überläuft.
noch eleganter ist es, das WaitWindowEvent mit einem timeout zu versehen,
und nur, wenn die schleife wegen des timeouts durchlaufen wird,
(also die rückgabe von WaitWindowEvent = 0 ist)
die aktualisierung auszulösen.