den DXE_DatePick kann man auch die "Timepicker" benutzten. Er hat aber nur HH:MM:SS und keine Dezimalstellen.
nun wollte ich so was ähnliches machen, also mehrere XbpSpinbutton() mit nur einem o:Master ganz rechts. (s.h. Help File)
ich muss erst in das Spinbutton "Feld" klicken und kann dann die Buttons vom o:Master oder Keyboard nutzen.
die Spinbutton sind mit o:setNumLimits() begrenzt auf HH:MM:SS:DEC
es gibt einen Callback-Slot o:EndSpin den ich nicht (?) belege
dafür nutzen ich o:down / o:up von XbpSpinbutton() und den o:keyboard Slot
nun scheint mir mein Code "zu umständlich" zu sein und ich frage mich wie man das besser macht.
hier mal das Beispiel für die Dezimal Stellen (1/1000 Sekunde)
---
Code: Alles auswählen
DO CASE
CASE oSpin = ::oB1HH
CASE oSpin = ::oB1MM
CASE oSpin = ::oB1SS
CASE oSpin = ::oB1DEC
IF Updown = "UP"
IF nB1DE >= 999
::oB1DEC:setdata(0)
IF nB1SS >= 59
::oB1SS:Setdata(0)
IF nB1MM >= 59
::oB1MM:Setdata(0)
::oB1HH:setdata(nB1HH+1)
ELSE
::oB1MM:Setdata(nB1MM+1)
ENDIF
ELSE
::oB1SS:Setdata(nB1SS+1)
ENDIF
ELSE
* ::oB1DEC:setdata(nB1DE+1)
ENDIF
ELSEIF Updown = "DN"
IF nB1DE <= 1
::oB1DEC:setdata(0)
IF nB1SS <= 1
::oB1SS:Setdata(0)
IF nB1MM <= 1
::oB1MM:Setdata(0)
IF nB1HH <= 1
::oB1HH:setdata(0)
::oB1MM:Setdata(59)
::oB1SS:Setdata(59)
::oB1DEC:setdata(999)
ELSE
::oB1HH:setdata(nB1HH-1)
ENDIF
ELSE
::oB1MM:Setdata(nB1MM-1)
::oB1SS:Setdata(59)
::oB1DEC:setdata(999)
ENDIF
ELSE
::oB1SS:Setdata(nB1SS-1)
::oB1DEC:setdata(999)
ENDIF
ELSE
* ::oB1DEC:setdata(nB1DE-1)
ENDIF
ENDIF
ENDCASE