Decimal vs Comma will this work
Posted: Fri Jan 09, 2015 6:50 am
Decimal vs Comma will this work like IsNumeric ??
try inputing Values like
4.563 with decimal like for USA Keyboard
and
4,563 with comma for France or Germany or other Countries
does this Code work OK with User's Country Keyboard Settings
as far as if Decimal or Comma ??
need someone to test this Code with France or Germany or other Countries
to see if it works correctly ??
try inputing Values like
4.563 with decimal like for USA Keyboard
and
4,563 with comma for France or Germany or other Countries
does this Code work OK with User's Country Keyboard Settings
as far as if Decimal or Comma ??
need someone to test this Code with France or Germany or other Countries
to see if it works correctly ??
Code: Select all
; Decimal_VS_Comma__test.pb
Declare InputMAX()
Declare ClearCalc()
Declare Calc()
Global Var1.d , Var2.d , Txt.s
Var1 = 0 : Var2 = 0
Define.i Event
Txt = #CRLF$ + #CRLF$ + "Enter a value between" + #CRLF$ + "1.0000 to 7.0000"
Enumeration
#Window_0
#Menu_0
#Verdana9
#Verdana10
EndEnumeration
LoadFont(#Verdana9,"Verdana", 9)
LoadFont(#Verdana10,"Verdana", 10)
;-----< GUI section >-----
Procedure OpenWindow_0(x = 0, y = 0, width = 300, height = 250)
OpenWindow(#Window_0, x, y, width, height, "", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget |
#PB_Window_SizeGadget | #PB_Window_ScreenCentered )
SetWindowColor(#Window_0,RGB(240,240,240))
StringGadget(1, 5, 20, 70, 22, "",#PB_Text_Center) : SetGadgetFont(1, FontID(#Verdana9)) : SetGadgetAttribute(1,#PB_String_MaximumLength,7)
StringGadget(2, 100, 20, 70, 22, "",#PB_Text_Center) : SetGadgetFont(2, FontID(#Verdana9)) : SetGadgetAttribute(2,#PB_String_MaximumLength,7)
StringGadget(3, 5, 45, 165, 22, "",#PB_Text_Center) : SetGadgetFont(3, FontID(#Verdana9)) : SetGadgetColor(3,#PB_Gadget_BackColor,RGB(250,250,0))
ButtonGadget(4, 5, 70, 165, 38, "Calculate") : SetGadgetFont(4, FontID(#Verdana10))
TextGadget(5,80,20,9,22,"X") : SetGadgetFont(5, FontID(#Verdana10))
TextGadget(6,5,120,280,100,"",#PB_Text_Center | #PB_Text_Border) : SetGadgetFont(6, FontID(#Verdana10)) : SetGadgetColor(6, #PB_Gadget_BackColor,RGB(255,255,255))
EndProcedure
OpenWindow_0()
AddKeyboardShortcut(0, #PB_Shortcut_Return, 13)
AddKeyboardShortcut(0, #PB_Shortcut_Escape, 27)
SetActiveGadget(1) : SendMessage_(GadgetID(GetActiveGadget()), #EM_SETSEL, 0, -1)
;-----< Input Section >-----
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_CloseWindow
Select EventWindow()
Case 0 : CloseWindow(0) : End
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
;-----< StringGadgets >-----
Case 1 ; Var1
Select EventType()
Case #PB_EventType_Focus
SetGadgetText(6,"Input Variable 1" + Txt)
SendMessage_(GadgetID(EventGadget()),#EM_SETSEL,0,-1)
Case #PB_EventType_Change
Var1 = ValD(GetGadgetText(1)) : ClearCalc()
If Var1 > 7 : InputMAX() : SetGadgetText(1,"") : SetActiveGadget(1) : EndIf
Case #PB_EventType_LostFocus
If Var1 >= 1 And Var1 <= 7 : SetGadgetText(1,StrD(Var1,4)) : Else : SetGadgetText(1,"") : EndIf
EndSelect
Case 2 ; Var2
Select EventType()
Case #PB_EventType_Focus
SetGadgetText(6,"Input Variable 2" + Txt)
SendMessage_(GadgetID(EventGadget()),#EM_SETSEL,0,-1)
Case #PB_EventType_Change
Var2 = ValD(GetGadgetText(2)) : ClearCalc()
If Var2 > 7 : InputMAX() : SetGadgetText(2,"") : SetActiveGadget(2) : EndIf
Case #PB_EventType_LostFocus
If Var2 >= 1 And Var2 <= 7 : SetGadgetText(2,StrD(Var2,4)) : Else : SetGadgetText(2,""): EndIf
EndSelect
Case 3 ; Yellow Answer Box
Case 4 ; Calc() Button
Select EventType()
Case #PB_EventType_Focus
Case #PB_EventType_LeftClick : Calc()
Case #PB_EventType_LostFocus
EndSelect
EndSelect
;-----< Menus and KeyDown >-----
Case #PB_Event_Menu
Select EventMenu()
Case #PB_Shortcut_Return
Select GetActiveGadget()
Case 1 : SetActiveGadget(GetActiveGadget() + 1)
Case 2 : SetActiveGadget(1)
EndSelect
Case #PB_Shortcut_Escape
Select GetActiveGadget()
Case 1 : SetActiveGadget(2)
Case 2 : SetActiveGadget(GetActiveGadget() - 1)
EndSelect
EndSelect
EndSelect
ForEver
End
Procedure InputMAX()
; Result = MessageRequester(Title$, Text$ [, Flags])
; #PB_MessageRequester_Ok : To have the 'ok' only button (Standard)
; #PB_MessageRequester_YesNo : To have 'yes' Or 'no' buttons
; #PB_MessageRequester_YesNoCancel : To have 'yes', 'no' And 'cancel' buttons
Title$ = "ERROR : Input exceeded Valid Range"
Text$ = "Input exceeded the maximum allowed value ...." + #CRLF$ + #CRLF$ + "Please enter a Value within the Valid Range"
MessageRequester(Title$, Text$, #PB_MessageRequester_Ok)
EndProcedure
Procedure ClearCalc()
SetGadgetText(3,"")
EndProcedure
Procedure Calc()
Protected Cnt.i
For Cnt = 1 To 2
If Val(GetGadgetText(Cnt)) = 0 : SetActiveGadget(Cnt) : ProcedureReturn : EndIf
Select GetGadgetText(Cnt)
Case "","0" : SetActiveGadget(Cnt) : ProcedureReturn
EndSelect
Next Cnt
Protected Answer.d
Answer = Var1 * Var2
SetGadgetText(3,"Answer = " + StrD(Answer,4))
EndProcedure