PureBasic or Q7Basic?

Everything else that doesn't fall into one of the other PB categories.
Robynsveil
User
User
Posts: 44
Joined: Fri Nov 30, 2012 2:07 pm

Re: PureBasic or Q7Basic?

Post by Robynsveil »

And I am grateful for your opinions AND assessments based on your experience. Thank you. :)

My understanding was that Q7Basic made use of the Qt Designer environment as well as Qt-Creator for compiling. Is this an option with PureBasic, or are we talking apples and oranges?

One of the things I did like with VBA was that I could step through code and - passing the mouse over a variable name - get a glimpse of the value at that point of code execution. I'm a frightfully poor code writer (weak on logic) and this has saved my bacon more times than I care to admit. It was the IDE that made VBE / VBA such a great environment to make stuff in. I'm willing to accept the fact I might have to do without that. Nevertheless at the price it seems worth it to get Purebasic if only to be able to write for 3 platforms using much the same code base.
nospam
Enthusiast
Enthusiast
Posts: 130
Joined: Mon Nov 12, 2012 9:15 am

Re: PureBasic or Q7Basic?

Post by nospam »

Robynsveil wrote:And I am grateful for your opinions AND assessments based on your experience. Thank you. :)

My understanding was that Q7Basic made use of the Qt Designer environment as well as Qt-Creator for compiling. Is this an option with PureBasic, or are we talking apples and oranges?
Apples and oranges. PB uses GTK+.
One of the things I did like with VBA was that I could step through code and - passing the mouse over a variable name - get a glimpse of the value at that point of code execution. I'm a frightfully poor code writer (weak on logic) and this has saved my bacon more times than I care to admit. It was the IDE that made VBE / VBA such a great environment to make stuff in. I'm willing to accept the fact I might have to do without that.
No, PB has all of that... stepping through code, breakpoints, variable viewing, etc. The programming environment is very good.
Nevertheless at the price it seems worth it to get Purebasic if only to be able to write for 3 platforms using much the same code base.
In between posts I'm now writing code so that's an advancement; I think I'll go crack a cold one. In the end I believe my money was well spent.

[Edit] Even though PB uses GTK+, GTK can be installed alongside Qt, and vise versa, so it doesn't matter if your users are running KDE, Gnome, Cinnamon, Mate, Unity, et al.
User avatar
skywalk
Addict
Addict
Posts: 4220
Joined: Wed Dec 23, 2009 10:14 pm
Location: Boston, MA

Re: PureBasic or Q7Basic?

Post by skywalk »

Just my opinion, but using any of the "Visual Designers" or "Form Editors" really slows me down to the point of frustration. I do admit to using them for XY coordinates of gadget polygons. I just move rectangles around and maybe on top of containers(panels,frames) for the slight offsets introduced. Then I view the generated source and cut and paste the "X,Y,Wd,Ht" pixels to my code section.
The same goes for Menus and Fonts and Images.
It is far too restrictive for me to enter all my information into little comboboxes and navigate through trees when I can cut and paste in a code window so much faster.
For beginners, it is way more instructive to just learn the gadget commands from the help and forum examples and follow them through to the Event Loop.
Once you are familiar with the basics you can up your game by resisting the urge to use gadget constants like #myTextBoxInput or #myListBox2. Instead use #PB_Any and store the gadget id's returned into a structured array or list. Then you can make global changes to your GUI without hardcoded #constant names and even change the creation order if you like. So many possibilities...

Coming from VB6, the PB gadget naming has to be understood...
Maybe this elaborates... :wink:

Code: Select all

;-{ PB Gadgets(description)     = VB6 Control - prefix used
; 1. ButtonGadget(BU)           = CommandButton - cmd
;    gID = ButtonGadget         (#PB_Any, x, y, Width, Height, Text$ [, Flags])
; 2. ButtonImageGadget(BI)      = CommandButton w/API
;    gID = ButtonImageGadget    (#PB_Any, x, y, Width, Height, ImageID [, Flags])
; 3. CalendarGadget(CA)         = DTPicker or NA - dtp
;    gID = CalendarGadget       (#PB_Any, x, y, Width, Height [, Date [, Flags]])
; 4. CanvasGadget(CG)           = PictureBox pb or ImageBox img
;    gID = CanvasGadget         (#PB_Any, x, y, Width, Height [, Flags])
; 5. CheckBoxGadget(XB)         = CheckBox - chk 
;    gID = CheckBoxGadget       (#PB_Any, x, y, Width, Height, Text$ [, Flags])
; 6. ComboBoxGadget(CB)         = ComboBox - cmb
;    gID = ComboBoxGadget       (#PB_Any, x, y, Width, Height [, Flags])
; 7. ContainerGadget(CN)(1 Panel) = NA
;    gID = ContainerGadget      (#PB_Any, x, y, Width, Height [, Flags])
; 8. DateGadget(DA)(StringGadget) = MaskedEdit control Or TextBox edit w/code
;    gID = DateGadget           (#PB_Any, x, y, Width, Height [, Mask$ [, Date [, Flags]]])
; 9. EditorGadget(E)            = TextBox - txt
;    Automatic vertical and horizontal scrollbars
;    No context menu. (right mouse click), but does support ctrl+c, etc.
;    gID = EditorGadget         (#PB_Any, x, y, Width, Height [, Flags])      
; 10.ExplorerComboGadget(XC)    = DriveListBox, DirectoryListBox, FileListBox - requires code To assemble pieces
;    gID = ExplorerComboGadget  (#PB_Any, x, y, Width, Height, Directory$, [, Flags])
; 11.ExplorerListGadget(XL)     = NA
;    gID = ExplorerListGadget   (#PB_Any, x, y, Width, Height, Directory$, [, Flags])
; 12.ExplorerTreeGadget(XT)     = DriveListBox ++
;    gID = ExplorerTreeGadget   (#PB_Any, x, y, Width, Height, Directory$, [, Flags])
; 13.Frame3DGadget(FR)          = Frame - fram
;    gID = Frame3DGadget        (#PB_Any, x, y, Width, Height, Text$ [, Flags])
; 14.HyperLinkGadget(HL)        = Label w/code
;    gID = HyperLinkGadget      (#PB_Any, x, y, Width, Height, Text$, Color [, Flags])
; 15.IPAddressGadget(IP)        = NA Or MaskedEditBox w/code
;    gID = IPAddressGadget      (#PB_Any, x, y, Width, Height)
; 16.ImageGadget(IM)            = Image - img, PictureBox - pb
;    gID = ImageGadget          (#PB_Any, x, y, Width, Height, ImageID [, Flags])
; 17.ListIconGadget             = ListView or MSGridControl
;    gID = ListIconGadget       (#PB_Any, x, y, Width, Height, Title$, TitleWidth [, Flags])
; 18.ListViewGadget(LV)         = ListBox - lb
;    gID = ListViewGadget       (#PB_Any, x, y, Width, Height [, Flags])
; 19.MDIGadget(MD)              = MDI Form w/code
;    gID = MDIGadget            (#PB_Any, x, y, Width, Height, SubMenu, MenuItem [, Flags])
; 20.OptionGadget(OP)           = OptionButton - opt
;    gID = OptionGadget         (#PB_Any, x, y, Width, Height, Text$)
; 21.PanelGadget(PA)            = SSTab - sst
;    gID = PanelGadget          (#PB_Any, x, y, Width, Height)
; 22.ProgressBarGadget(PB)      = ProgressBar - pbar
;    gID = ProgressBarGadget    (#PB_Any, x, y, Width, Height, Minimum, Maximum [, Flags])
; 23.ScrollAreaGadget(SA)       = NA 
;    gID = ScrollAreaGadget     (#PB_Any, x, y, Width, Height, ScrollAreaWidth, ScrollAreaHeight [, ScrollStep [, Flags]])
; 24.ScrollBarGadget(SB)        = HScrollBar, VScrollBar - hsb,vsb
;    gID = ScrollBarGadget      (#PB_Any, x, y, Width, Height, Minimum, Maximum, PageLength [, Flags])
; 25.ShortcutGadget(SK)         = NA
;    gID = ShortcutGadget       (#PB_Any, x, y, Width, Height, Shortcut)
; 26.SpinGadget(SP)             = UpDown - spin
;    gID = SpinGadget           (#PB_Any, x, y, Width, Height, Minimum, Maximum [, Flags])
; 27.SplitterGadget(SR)         = NA
;    gID = SplitterGadget       (#PB_Any, x, y, Width, Height, #Gadget1, #Gadget2 [, Flags])
; 28.StringGadget(S)            = TextBox w/single line only, txt
;    Add #ES_MULTILINE flag, and it will handle more lines, but no scrollbars when text overflows.
;    gID = StringGadget         (#PB_Any, x, y, Width, Height, Content$ [, Flags])
; 29.TextGadget(T) (no events)  = Label - lbl
;    gID = TextGadget           (#PB_Any, x, y, Width, Height, Text$ [, Flags])
; 30.TrackBarGadget(TB)         = NA, use tiny scrollbar w/code
;    gID = TrackBarGadget       (#PB_Any, x, y, Width, Height, Minimum, Maximum [, Flags])
; 31.TreeGadget(TV)             = TreeView, trv
;    gID = TreeGadget           (#PB_Any, x, y, Width, Height [, Flags])
; 32.WebGadget(WG)              = NA or any IE component w/API code
;    gID = WebGadget            (#PB_Any, x, y, Width, Height, URL$ [, Flags])
;
; Additional Gadgets...
;
; 1. Window(W)                  = Form - frm
;    wID = OpenWindow           (#PB_Any, x, y, InnerWidth, InnerHeight, Title$ [, Flags [, ParentWindowID]])
; 2. AddGadgetItem              = NA
;    wID = AddGadgetItem        (#PB_Any, Position, Text$ [, ImageID [, Flags]])
;    ^^^ with MDI only
;          AddGadgetItem        (gID, Position, Text$ [, ImageID [, Flags]])
; 3. OpenGadgetList(O)          = NA
;          OpenGadgetList       (gID [, Item])
; 4. CloseGadgetList(C)         = NA
;          CloseGadgetList      ()
; 5. StatusBar(ST)              = NA
;    gID = CreateStatusBar      (#PB_Any, WindowID(wID))
;          AddStatusBarField    (#PB_Ignore = Width)
; 6. ScintillaGadget            = NA
;    gID = ScintillaGadget      (#PB_Any, x, y, Width, Height, @Callback())
; 7. Timer(TM)
;    AddWindowTimer(#Window, Timer, Timeout)
The nice thing about standards is there are so many to choose from. ~ Andrew Tanenbaum
nospam
Enthusiast
Enthusiast
Posts: 130
Joined: Mon Nov 12, 2012 9:15 am

Re: PureBasic or Q7Basic?

Post by nospam »

MachineCode wrote:
nospam wrote:its form editor blows PB's form editor into the weeds.
For Linux maybe; not for Windows. Fred has already told you that the Linux form editor is coming soon. Besides, a superior editor in a dead language is still just a dead editor.
nospam wrote:The only real annoyance with the languge is the use of the word 'gadget' for controls, 'String' for text boxes, 'Text' for labels and so on
These words came from PureBasic's Amiga roots, and they've never changed. It's hardly a show-stopper or reason to buy something else. You can always make your own Residents file with macros to change any keywords to your own liking.
Ah, I wasn't aware of that. Thank you.
Robynsveil
User
User
Posts: 44
Joined: Fri Nov 30, 2012 2:07 pm

Re: PureBasic or Q7Basic?

Post by Robynsveil »

Thank you, SkyWalk - that was indeed extremely helpful! That, and the generally helpful nature of this community has convinced me that PureBasic is a good investment indeed and so have invested in 3-platform (well 4, counting Amiga) licence. I look forward to learning and building (re-building) apps I've developed in VBA/Excel.

I have to admit: I'm very excited about this! :!: :!:
IdeasVacuum
Always Here
Always Here
Posts: 6426
Joined: Fri Oct 23, 2009 2:33 am
Location: Wales, UK
Contact:

Re: PureBasic or Q7Basic?

Post by IdeasVacuum »

skywalk wrote:Just my opinion
I concur. I use UltraEdit to write all my code (whatever the language). For me it is better than any dedicated IDE because real time saving is born out of being able to quickly create/modify/beautify code. PB's IDE is very good, and it's 'aware' of code changes made in another editor so they can be run side-by-side.

Once you have your App's basic GUI layout defined in a form designer (the new Official Form Designer written by Polo is good), editing that code by hand is very easy.

The only real limitation that PB has is your imagination and skill. Fortunately, if your imagination is working, there is plenty of expert help on this forum for the rest! :mrgreen:
IdeasVacuum
If it sounds simple, you have not grasped the complexity.
Robynsveil
User
User
Posts: 44
Joined: Fri Nov 30, 2012 2:07 pm

Re: PureBasic or Q7Basic?

Post by Robynsveil »

I'd love to use UltraEdit, but I've sort-of spent my budget, and US$60 is not something I can afford for the immediate future. In Windows I used to use NotePad++ - which did syntax-colours and stuff... anyone know of something similar in Linux?

Also, in Excel VBA, any UDFs and other methods and properties etc used to appear magically after the '.' ... does Purebasic do the same sort of thing? Or is this on the ToDo?
User avatar
Danilo
Addict
Addict
Posts: 3036
Joined: Sat Apr 26, 2003 8:26 am
Location: Planet Earth

Re: PureBasic or Q7Basic?

Post by Danilo »

Robynsveil wrote:Also, in Excel VBA, any UDFs and other methods and properties etc used to appear magically after the '.' ... does Purebasic do the same sort of thing?
Yes, it does name completion... but in PB it is not '.' but '\' to access UDF members. It also provides a completion list
for all known functions. Just try it. :wink:

Image
Robynsveil
User
User
Posts: 44
Joined: Fri Nov 30, 2012 2:07 pm

Re: PureBasic or Q7Basic?

Post by Robynsveil »

Thanks, Danilo :) I've decided to look for a good Getting Started book and found this one which will allow me to get my fingers dirty without boring everyone in the process.
I've started a new thread with a few questions... to keep this one from being further hijacked... :lol: thanks to all for your kind help!! :)
Post Reply