Page 2 of 2
Re: Newbie stumper
Posted: Tue Nov 29, 2011 12:34 pm
by Trond
It's pretty easy to shove the gadget numbers into a list or map, and then they can be looped over effortlessly:
Code: Select all
OpenWindow(0,100,100,640,480,"test")
NewMap Buttons()
Buttons("username") = ButtonGadget(#PB_Any,10,10,200,25,"Username")
Buttons("password") = ButtonGadget(#PB_Any,10,40,200,25,"Password")
Buttons("website") = ButtonGadget(#PB_Any,10,70,200,25,"Website")
ForEach Buttons()
Debug GetGadgetText(Buttons())
Next
Debug "--"
Repeat
event=WaitWindowEvent()
If event=#PB_Event_Gadget
Select EventGadget()
Case Buttons("username") : Debug "clicked username"
Case Buttons("password") : Debug "clicked password"
Case Buttons("website") : Debug "clicked website"
EndSelect
EndIf
Until event=#PB_Event_CloseWindow
Re: Newbie stumper
Posted: Tue Nov 29, 2011 12:49 pm
by MachineCode
Actually, you CAN use my tip if you simply throw "IsGadget()" into the loop, like below... but it's not recommended.
Code: Select all
OpenWindow(0,100,100,640,480,"test")
Global username=ButtonGadget(#PB_Any,10,10,200,25,"Username")
Global password=ButtonGadget(#PB_Any,10,40,200,25,"Password")
Global website=ButtonGadget(#PB_Any,10,70,200,25,"Website")
Repeat
event=WaitWindowEvent()
If event=#PB_Event_Gadget
For g=username To website
If IsGadget(g) : Debug GetGadgetText(g) : EndIf
Next
EndIf
Until event=#PB_Event_CloseWindow
Re: Newbie stumper
Posted: Tue Nov 29, 2011 12:53 pm
by Arctic Fox
@MachineCode
What if the assigned id value for username is larger than website?
Re: Newbie stumper
Posted: Tue Nov 29, 2011 1:08 pm
by Kuron
MachineCode wrote:IdeasVacuum wrote:if you have 25 "#PB_Any String Gadgets" I don't see how that is easy to understand in your code in terms of each gadgets purpose?
It's easy! Do what I do. No enumerations required!
Code: Select all
OpenWindow(0,100,100,640,480,"test")
Global username=ButtonGadget(#PB_Any,10,10,200,25,"Username")
Global password=ButtonGadget(#PB_Any,10,40,200,25,"Password")
Global website=ButtonGadget(#PB_Any,10,70,200,25,"Website")
Repeat
event=WaitWindowEvent()
If event=#PB_Event_Gadget
Select EventGadget()
Case username : Debug "username"
Case password : Debug "password"
Case website : Debug "website"
EndSelect
EndIf
Until event=#PB_Event_CloseWindow
This would be a nightmare for any decent sized application. I can't imagine having to remember (and give) unique names for hundreds of gadgets.

Re: Newbie stumper
Posted: Tue Nov 29, 2011 2:09 pm
by MachineCode
Arctic Fox wrote:What if the assigned id value for username is larger than website?

I'm having some shocking seniors moments tonight. Forget I ever posted.
Kuron wrote:I can't imagine having to remember (and give) unique names for hundreds of gadgets.
How is remembering a global var name like "website" any different to remembering a enumerated constant like "#website" ?
Re: Newbie stumper
Posted: Tue Nov 29, 2011 2:17 pm
by Kuron
MachineCode wrote:How is remembering a global var name like "website" any different to remembering a enumerated constant like "#website" ?
Your way would be great for small programs. It wouldn't work well for
me for larger projects. There are many ways to skin a cat.
Re: Newbie stumper
Posted: Fri Dec 02, 2011 5:42 pm
by blueznl