habe ein spingadget, das sich meim click auf die arrows nicht um +-1, sonders um, in diesem falle, 5 ändern soll. erstmal der relevante code:
Code: Alles auswählen
[...]
SpinGadget(#s_host_time, 220, 210, 60, 20, 5, 55, #PB_Spin_Numeric | #PB_Spin_ReadOnly)
SetGadgetText(#s_host_time, "20")
SetGadgetState(#s_host_time, 20)
[...]
Repeat
[...]
Select WaitWindowEvent()
[...]
Case #PB_Event_Gadget
Select EventGadget()
[...]
Case #s_host_time ; mein spinner-gadget
Select EventType()
Case 1 ; up arrow
If Int(ValF(GetGadgetText(#s_host_time)))<55
SetGadgetText(#s_host_time, Str(Int(ValF(GetGadgetText(#s_host_time))+ValF("4"))))
EndIf
Case -1 ; down arrow
If Int(ValF(GetGadgetText(#s_host_time)))>5
SetGadgetText(#s_host_time, Str(Int(ValF(GetGadgetText(#s_host_time))-ValF("4"))))
EndIf
EndSelect
EndSelect
EndSelect
[...]
problem 1: sobald ich die arrows halte und das gadget "in seinen auto-hochzählmodus" springt, wird immer nur 1 addiert/subtrahiert. damit komme ich dann auf werte, die nicht mehr durch 5 teilbar sind, was ich ja doch vermeiden will. das könnte ich jetzt umgehen, indem ich vor dem schreiben ins feld prüfe, ob der wert durch 5 teilbar ist, mit wäre es aber lieber, wenn ich diesen auto-hochzähler abschalten könnte, denn..
problem 2: ...in diesem modus ist es möglich, unter meine grenze von 5 zu kommen - bis 2, um genau zu sein, dann springt er zurück auf 5. wie ist das möglich?
ps - wo wir grad dabei sind. Str(Int(ValF()+ValF())) is ja dann doch ein wenig massiv. gibt's da was kürzeres?