The first public version of InForm, dubbed Beta 1, was made available after 4 months of coding, with constant input from several good friends who are usually lurking with me at the #qb64 channel on Freenode. Then, as the following year progressed, along came betas 2, 3, 4 and 5. Each new update brought some novelty and massive work on stability.
The work on beta 6 marked a new approach to updates. GitHub’s issues and milestones features have come in handy to allow me to list whatever I found in InForm that needed my attention as well as to keep my own wish list organized. Each new issue closed increases a progress bar that gets you closer to your goal and that’s a game changer.
Ah, he’s doing the Google thing with labeling it “beta” then. Now it’s clear.
Well, it’s January of 2018 now and it’s been a while since I first released InForm and since this website went up to promote it. As I hadn’t until today written an update post on the current state of affairs, here’s one to try to cover what’s been done so far.
InForm is currently more stable, and we have a few new features here and there, but it’s still mostly the same InForm of launch day. It does the job and I’m glad it’s being used by others besides me out there (one fine example here: https://github.com/wfbarnes/sprezzo).
I still haven’t gotten around to making it easily customizable theme-wise, so it still has that Windows XP look to it, as I worried about internals more than about looks after release.
The editor can now load a saved form from a .frm file instead of only loading from a .frmbin file. The advantages of this approach are that (i) you can manually make changes to the .frm file, which is nothing but a regular QB64 source file with the proper function calls to recreate your form and still be able to edit it visually later and also that (ii) you only need to keep one file saved with your project if you so wish.
I also added a small utility that allows you to import a .FRM file from old VBDOS 1.00. That means that, to some extent, you can import that old project you had lying in your floppy drives and give it a modern go with InForm and QB64.
User HeadApe on GitHub made a contribution allowing the draw order of controls to be changed and that marks the first time an external contributor added to the InForm codebase via GitHub. The library already contained contributions by Luke Ceddia as well as code borrowed from other users of QB64, all of which are credited in the code itself, of course. It feels nice to have the project go bigger with others helping improve upon it.
There is now a new event __UI_FormResized that is triggered, you guessed it, as soon as the form is resized, provided you created it with the .CanResize property set to True. This allows you to make custom changes to the layout depending on the current form size, if you wish to.
I’m adding a new toggle control too. The code for it is already in the beta 5 package but you can only add it manually by editing your .frm files for now. The easiest way at the moment is to add a placeholder control like a Picture Box at design time and edit the .frm file manually before compiling and making it be of type __UI_Type_ToggleSwitch. This will of course be added to the editor in the next release. A quick video demo of it can be seen below:
Back in September I started working on a GUI prototype.
Another one, you just thought. I know the feeling.
A very frequent request from any community of BASIC programmers is for a working GUI, a decent framework, a way to quickly have an interface up so you can focus on code, actual functionality.
However, it is also a tradition amongst BASIC programmers to keep constantly trying to reinvent the wheel. Maybe the pleasure resides in the achievement of a well-known paradigm in BASIC! See, ma? I click it and it works!
I kept seeing the reinvented wheels, even in early alpha stages, and thinking hey, this is awesome! How do we start creating new programs with it? And the answer was always a bunch of complicated instructions that required me to learn a whole new language of its own so I could “design” a form. That is, (i) imagine it, (ii) throw a lot of coordinates into code and (iii) see if it ended up where I expected it to (iv) repeat until exhausted. That just didn’t feel right.
InForm was born out of all of those initial urges. However, unlike most projects out there, it’s just gotten to see the light in full glory. Yeah, it’s a beta, but I’ve worked my fingertips off for the past months to get it to a working state, so that I wouldn’t release a half-baked product, but a working GUI, a decent framework, a way to quickly have an interface up so you can focus on code, actual functionality.
And today I have the pleasure of sharing it with you, so you can test the bits out of it and let me know where it can be improved.
It’s all open source and this initial release uses Windows XP’s imagery to display controls on the main window surface.
A proof of concept is that InForm was created using InForm. How cool is that?
Thanks for your interest! I’m looking forward to your feedback.