Moving thru StringGadget inputs

Share your advanced PureBasic knowledge/code with the community.
User avatar
VB6_to_PBx
Enthusiast
Enthusiast
Posts: 627
Joined: Mon May 09, 2011 9:36 am

Moving thru StringGadget inputs

Post by VB6_to_PBx »

This Code might help someone like me who's making transition
from Visual Basic over to PureBasic .

i'm converting one of my VB6 programs over to PureBasic
that has a little over 50 Inputs
the following PB Code is what i've come up with to simulate my VB6 program :

Code: Select all

EnableExplicit

OpenWindow(0, 0, 0, 322, 240, "[EnterKey=travel down]  [EscapeKey=travel up]", #PB_Window_SystemMenu | #PB_Window_ScreenCentered )

Define vbKeyReturn.b : vbKeyReturn = 13
Define vbKeyEscape.b : vbKeyEscape = 27
Define vbKeyUp.b : vbKeyUp = 38
Define vbKeyDown.b : vbKeyDown = 40

AddKeyboardShortcut(0, #PB_Shortcut_Return, vbKeyReturn)
AddKeyboardShortcut(0, #PB_Shortcut_Escape, vbKeyEscape)
AddKeyboardShortcut(0, #PB_Shortcut_Up,vbKeyUp)
AddKeyboardShortcut(0, #PB_Shortcut_Down,vbKeyDown)

LoadFont(10,"Verdana", 10)

StringGadget(0, 8,  10, 306, 20, "Normal StringGadget...")
StringGadget(1, 8,  35, 306, 20, "1234567", #PB_String_Numeric)
StringGadget(2, 8,  60, 306, 20, "Readonly StringGadget", #PB_String_ReadOnly)
StringGadget(3, 8,  85, 306, 20, "lowercase...", #PB_String_LowerCase)
StringGadget(4, 8, 110, 306, 20, "uppercase...", #PB_String_UpperCase)
StringGadget(5, 8, 140, 306, 20, "Borderless StringGadget", #PB_String_BorderLess)
StringGadget(6, 8, 170, 306, 20, "Password", #PB_String_Password) : SetGadgetAttribute(6,#PB_String_MaximumLength,8)


TextGadget(7, 8, 195, 306, 32, "", #PB_Text_Border)
SetGadgetColor(7, #PB_Gadget_FrontColor,RGB(0,80,0))
SetGadgetFont(7, FontID(10))

SetActiveGadget(0) : SendMessage_(GadgetID(GetActiveGadget()), #EM_SETSEL, 0, -1)

Repeat
    Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
         Break : End
    Case #PB_Event_Gadget
         Select EventType()
         Case #PB_EventType_Focus 
              SendMessage_(GadgetID(EventGadget()),#EM_SETSEL,0,-1)
              SetGadgetText(7,"StringGadget Number = " + Str(GetActiveGadget()))
         EndSelect
    Case #PB_Event_Menu
         Select EventMenu()
         Case vbKeyReturn,vbKeyDown
              Select GetActiveGadget()
              Case 0 To 5 : SetActiveGadget(GetActiveGadget() + 1)
              Case 6 : SetActiveGadget(0)
              EndSelect
         Case vbKeyEscape,vbKeyUp
              Select GetActiveGadget()
              Case 0 : SetActiveGadget(6)
              Case 1 To 6 : SetActiveGadget(GetActiveGadget() - 1)
              EndSelect
         EndSelect
    EndSelect
ForEver
 
PureBasic .... making tiny electrons do what you want !

"With every mistake we must surely be learning" - George Harrison
User avatar
VB6_to_PBx
Enthusiast
Enthusiast
Posts: 627
Joined: Mon May 09, 2011 9:36 am

Re: Moving thru StringGadget inputs

Post by VB6_to_PBx »

i had to change the Source Code
to make it work in newer PB version 5.21 LTS to this :


Also, is this the best or most efficient way to move thru Inputs ?
is there a better way ??

Code: Select all

EnableExplicit

OpenWindow(0, 0, 0, 322, 240, "[EnterKey=travel down]  [EscapeKey=travel up]", #PB_Window_SystemMenu | #PB_Window_ScreenCentered )

Define vbKeyReturn.b : vbKeyReturn = 13
Define vbKeyEscape.b : vbKeyEscape = 27
Define vbKeyUp.b : vbKeyUp = 38
Define vbKeyDown.b : vbKeyDown = 40

AddKeyboardShortcut(0, #PB_Shortcut_Return, vbKeyReturn)
AddKeyboardShortcut(0, #PB_Shortcut_Escape, vbKeyEscape)
AddKeyboardShortcut(0, #PB_Shortcut_Up,vbKeyUp)
AddKeyboardShortcut(0, #PB_Shortcut_Down,vbKeyDown)

LoadFont(10,"Verdana", 10)

StringGadget(0, 8,  10, 306, 20, "Normal StringGadget...")
StringGadget(1, 8,  35, 306, 20, "1234567", #PB_String_Numeric)
StringGadget(2, 8,  60, 306, 20, "Readonly StringGadget", #PB_String_ReadOnly)
StringGadget(3, 8,  85, 306, 20, "lowercase...", #PB_String_LowerCase)
StringGadget(4, 8, 110, 306, 20, "uppercase...", #PB_String_UpperCase)
StringGadget(5, 8, 140, 306, 20, "Borderless StringGadget", #PB_String_BorderLess)
StringGadget(6, 8, 170, 306, 20, "Password", #PB_String_Password) : SetGadgetAttribute(6,#PB_String_MaximumLength,8)


TextGadget(7, 8, 195, 306, 32, "", #PB_Text_Border)
SetGadgetColor(7, #PB_Gadget_FrontColor,RGB(0,80,0))
SetGadgetFont(7, FontID(10))

SetActiveGadget(0) : SendMessage_(GadgetID(GetActiveGadget()), #EM_SETSEL, 0, -1)
SetGadgetText(7,"StringGadget Number = " + Str(GetActiveGadget()))

Repeat
    Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
         Break : End
    Case #PB_Event_Gadget
         Select EventType()
         Case #PB_EventType_Focus 
              SendMessage_(GadgetID(EventGadget()),#EM_SETSEL,0,-1)
              SetGadgetText(7,"StringGadget Number = " + Str(GetActiveGadget()))
         EndSelect
    Case #PB_Event_Menu
         Select EventMenu()
         Case vbKeyReturn,vbKeyDown
              Select GetActiveGadget()
              Case 0 To 5 : SetActiveGadget(GetActiveGadget() + 1)
              Case 6 : SetActiveGadget(0) 
              EndSelect
         Case vbKeyEscape,vbKeyUp
              Select GetActiveGadget()
              Case 0 : SetActiveGadget(6) 
              Case 1 To 6 : SetActiveGadget(GetActiveGadget() - 1)
              EndSelect
         EndSelect
         SendMessage_(GadgetID(GetActiveGadget()), #EM_SETSEL, 0, -1)
         SetGadgetText(7,"StringGadget Number = " + Str(GetActiveGadget()))
    EndSelect
ForEver
 
PureBasic .... making tiny electrons do what you want !

"With every mistake we must surely be learning" - George Harrison
Post Reply