sollte man einen Wert kleiner 10 eingeben, soll die Eingabe von zb 5 verweigert und auf 10 aufgerundet und als 10 im StringGadget angezeigt werden. Selbiges soll gelten für eine Eingabe größer 500. Hier soll ein Wert von zb 600 abgerundet und auf 500 gesetzt und eingetragen werden.
Bräuchte einen Denkanstoß
Dankeschön
EDIT:
Code angepasst
ein simples Beispiel:
Code: Alles auswählen
EnableExplicit
Enumeration
#Wnd
EndEnumeration
Enumeration
#Str
#Txt_1
#Txt_2
#Fnt_SegoeUI18
#Btn
EndEnumeration
LoadFont(#Fnt_SegoeUI18, "Segoe Ui", 18, #PB_Font_HighQuality)
Define Event, EventWindow, EventGadget
Procedure String()
Protected String.s = GetGadgetText(EventGadget())
Protected Gadget = EventGadget()
If EventType() = #PB_EventType_LostFocus
If Val(String) <= 10
String = "10"
ElseIf Val(String) >= 500
String = "500"
EndIf
SetGadgetText(EventGadget(), String)
EndIf
If EventType() = #PB_EventType_Focus
Select Gadget
Case #Str
If GetGadgetText(Gadget) = "0,00"
SetGadgetText(Gadget, "")
SetGadgetColor(Gadget, #PB_Gadget_FrontColor, RGB(65,110,182))
EndIf
EndSelect
EndIf
EndProcedure
Procedure Main()
OpenWindow(#Wnd, 685, 480, 272, 197, "",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_BorderLess)
TextGadget(#Txt_1, 55, 45, 55, 20, "min: 10")
TextGadget(#Txt_2, 170, 45, 45, 20, "max: 500")
StringGadget(#Str, 55, 70, 160, 34, "0,00", #PB_String_BorderLess|#ES_CENTER|#PB_String_Numeric)
SetGadgetColor(#Str, #PB_Gadget_FrontColor, RGB(65,110,182))
SetGadgetFont(#Str, FontID(#Fnt_SegoeUI18))
BindGadgetEvent(#Str, @String())
ButtonGadget(#Btn, 86, 130, 100, 34, "Weiter")
EndProcedure
Main()
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Wnd
CloseWindow(#Wnd)
Break
EndIf
EndSelect
ForEver