Beta 7 is here!

InForm for QB64 Beta 7 brings a redesigned interface for an enhanced user experience as well as a handful of improvements, new functionality and bug fixes. Check out some of what’s new:

(Check out this video to *see* some of what’s new: https://www.youtube.com/watch?v=MIKjCM4eNNE)

– Major interface overhaul, with control properties more easily accessible.

– Snap to edges feature improved to have controls detect each other snap by proximity.

– New auto-size feature for labels at design time.

– Right-click a button to “Set as default” so it can be triggered with Enter at runtime.

– New NumericTextBox control to get numeric input from your users without having to worry about validating its contents.

– The mask property can now be set and tested at design time so you can get user input in a specific format.

– Clipboard operations rewritten from the ground up: controls can now be copied, cut and pasted much more reliably. Copied controls now remain in memory even after a form or even InForm itself is closed, so that you can transfer controls between existing files easily.

– New SetFocus to change the focus to another control programmatically.

– InForm now attempts to preserve your existing code when you make edits, which makes it easier than ever to edit existing programs.

– To select multiple controls you can now click them while holding down the Ctrl key. You can now also use Shift to select a range of controls (click the first control, hold shift, then click the last control in the range you’d like to have selected at once).

– Menus items can be set to have a Bullet marker. Groups of menu items (separated by a hyphen) behave just like a group of Radio buttons in a form, allowing you to have options that mutually exclude each other in your menus.

– Right-click the form preview to “Add menu bar control”.

– Beta 7 now includes an online updater. Whenever a new version is made available at our server, you will be notified and asked to update; That means that Beta 7 is the last version of InForm you will have to manually download. Auto-updating can be disabled in the Options menu.

Grab the latest version at qb64.org/inform

A new approach to updates

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.

The work on Beta 6 was already based on this approach. You can see here the list of issues that were addressed in order to reach Beta 6: https://github.com/FellippeHeitor/InForm/milestone/1?closed=1

“Miles to go before I sleep…”

Current milestone has been labeled Beta 7 and I have a few issues to fix and a few new features to add. You can follow along as development goes at https://github.com/FellippeHeitor/InForm/milestones.

Besides following you can also add issues and suggest new features at https://github.com/FellippeHeitor/InForm/issues (make sure to have a look at the existing issues to see if your idea maybe has already made it to the wishlist.

That’s a year and a few betas later now

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.

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:

There are several other tweaks and fixes and you can keep posted on the changes by following the commit history on GitHub here: https://github.com/FellippeHeitor/InForm

Thanks for using InForm!

Fellippe.

InForm’s up!

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.

Fellippe.