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
;