2 quickies (I hope)

Just starting out? Need help? Post your questions and find answers here.
Nonproductive
User
User
Posts: 17
Joined: Fri Apr 25, 2003 10:43 pm

2 quickies (I hope)

Post by Nonproductive »

Hopefully 2 easy questions:

1) what is the best way to pass a URL to Windows and have it open a webpage in the default browser?

2) Can I change the "Default" button at runtime? (as opposed to design time)


Thank you in advance!
newbie
Enthusiast
Enthusiast
Posts: 296
Joined: Tue Jul 29, 2003 5:47 pm
Location: FRANCE
Contact:

Post by newbie »

Hi,

for the web browser the standard way is :
ShellExecute_(#NULL, "open", "http://YOURURLHERE" , #NULL, #NULL, #SW_SHOWNORMAL)
newbie.
- Registered PB user -

Using PB 4.00
PB
PureBasic Expert
PureBasic Expert
Posts: 7581
Joined: Fri Apr 25, 2003 5:24 pm

Re: 2 quickies (I hope)

Post by PB »

> Can I change the "Default" button at runtime? (as opposed to design time)

Use the #PB_Button_Default flag for the desired ButtonGadget.
spangly
User
User
Posts: 54
Joined: Mon Apr 28, 2003 8:26 pm
Contact:

Re: 2 quickies (I hope)

Post by spangly »

Nonproductive wrote:Hopefully 2 easy questions:

2) Can I change the "Default" button at runtime? (as opposed to design time)

Thank you in advance!
You could try this

Code: Select all

SetFocus_(GadgetID(gadgetnumber))
Nonproductive
User
User
Posts: 17
Joined: Fri Apr 25, 2003 10:43 pm

Post by Nonproductive »

Thank you All!
ShellExecute does exactly what I wanted :)

PB -
I know that works at gadget creation time, can you also use that flag at runtime?

--------
For what it's worth I was looking at Realbasic 5.2
Running through the demo "quickstart" tutorial they have you create a "URL Manager" application. So I decided to recreate the little App in Purebasic for comparison.

Here's the result (lines typed does not include auto generated code):

Realbasic 5.2.1 Demo
31 lines of code typed
1511 KB EXE

Purebasic 3.7.2 Licensed
37 lines of code typed
13 KB EXE

Realbasic claims "no runtime" needed - which is true - but it *is* bound with the app. The one upside though is that you can recompile most code directly for Mac's with little modification. Of course, this comes at a cost of $400. ($100 if you only want to compile for the platform you are running on)

And here is the PB Code (I make no claims to be a programmer BTW)

Code: Select all

; PureBasic Visual Designer v3.72


;- Window Constants
;
#Window_0 = 0

;- Gadget Constants
;
#AddURL = 0
#ConnectURL = 1
#DeleteURL = 2
#SelectedURL = 3
#ListURL = 4


Procedure Open_Window_0()
  If OpenWindow(#Window_0, 216, 0, 363, 434,  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "URL Manager")
    If CreateGadgetList(WindowID())
      ButtonGadget(#AddURL, 10, 400, 90, 30, "Add")
      ButtonGadget(#ConnectURL, 260, 400, 90, 30, "Connect")
      ButtonGadget(#DeleteURL, 260, 320, 90, 30, "Delete")
      StringGadget(#SelectedURL, 10, 360, 340, 30, "")
      ListViewGadget(#ListURL, 10, 10, 340, 300)
      
    EndIf
  EndIf
EndProcedure

Open_Window_0()

Repeat
  
Event = WaitWindowEvent()

If Event = #PB_EventGadget
  GadgetID = EventGadgetID()
  EvntT = EventType() 
  
If EvntT = #PB_EventType_Change And GadgetID = #SelectedURL
  SelURL.s = GetGadgetText(#SelectedURL)
  If SelURL.s <> ""
    DisableGadget(#ConnectURL,0)
    DisableGadget(#AddURL,0)
    ;ConnectURL.Default=True    
  Else
    DisableGadget(#ConnectURL,1)
    DisableGadget(#AddURL,1)
    ;ConnectURL.Default=False
  EndIf

ElseIf GadgetID = #ListURL
    Result = GetGadgetState(#ListURL)
    If Result <> -1
    LstURL.s = GetGadgetText(#ListURL)
    SetGadgetText(#SelectedURL,LstURL.s)
    DisableGadget(#ConnectURL,0)
    DisableGadget(#DeleteURL,0)
    Else
    DisableGadget(#DeleteURL,1)
  EndIf
  
ElseIf GadgetID = #AddURL
      SelURL.s = GetGadgetText(#SelectedURL)
      LstURL.s = GetGadgetText(#ListURL)
      If SelURL.s <> LstURL.s
        AddGadgetItem(#ListURL,-1,SelURL.s)
      Else
        MBResult = MessageRequester("Oops!","Please Enter a different URL Or email address.",#PB_MessageRequester_Ok)
      EndIf
      
ElseIf GadgetID = #ConnectURL
      SelURL.s = GetGadgetText(#SelectedURL)
      If SelURL.s <> ""
      ShellExecute_(#NULL,"open",SelURL,"","",#SW_SHOWNORMAL)
      Else
        MBResult = MessageRequester("Oops!","Please Enter a URL or email address.",#PB_MessageRequester_Ok)
      EndIf
      
ElseIf GadgetID = #DeleteURL
      Result = GetGadgetState(#ListURL)
      If Result <> -1
        RemoveGadgetItem(#ListURL,Result)
      Else
        MBResult = MessageRequester("Oops!","Please select an item in the list.",#PB_MessageRequester_Ok)
      EndIf

EndIf
EndIf
  
Until Event = #PB_EventCloseWindow

End
;
PB
PureBasic Expert
PureBasic Expert
Posts: 7581
Joined: Fri Apr 25, 2003 5:24 pm

Post by PB »

> I know that works at gadget creation time, can you also use that flag at runtime?

Oops, I misread your question. To change the default button you can do
what Spangly said, or use ActivateGadget(gad#) where gad# is the number
you gave to the button at its creation.
Post Reply