Code: Alles auswählen
Procedure checkFloatInput()
;nach der Lösung von Danilo
Protected start, count, pointcount, new$,Ev.i,EvGad.i
EvGad=EventGadget()
SendMessage_(GadgetID(EvGad), #EM_GETSEL, @start, 0)
Protected txt$ = GetGadgetText(EvGad)
Protected *p.Character = @txt$
While *p\c ; <> 0
If *p\c = '.'
pointcount+1
If pointcount < 2
new$ + Chr(*p\c)
Else
If start>count : start-1 : EndIf
EndIf
ElseIf *p\c= ;Wenn RETURN eingegeben wurde *****
;.....tue bei RETURN irgendetwas
ElseIf count = 0 And *p\c = '-'
new$ + Chr('-')
ElseIf *p\c >= '0' And *p\c <= '9'
new$ + Chr(*p\c)
Else
start - 1
EndIf
*p + SizeOf(Character)
count + 1
Wend
SetGadgetText(EvGad, new$)
SendMessage_(GadgetID(EvGad), #EM_SETSEL, start, start)
EndProcedure