In need of a short break from Arctic Reports (what can I say, too much concentrated effort on one project is not always a good thing I reckon!

) I have returned to an old 'hobby' project of mine, something which I have rewritten twice and, basically, abandoned twice because of time constraints and, frankly, complexity.
What has always started out (on paper at least) as a simple form designer has, on all previous occasions, ballooned into something far far more complex than I ever imagined. So much so that I have always, reluctantly, been forced to abandon the work with the promise that 'I'll be back!'. A promise I have not broken!
And so, it is third time lucky now with my
KwikForm designer (or at least that is the hope!)
And let me say, that I've nailed the bugger this time!

If this doesn't turn out to be the simplest to use form designer ever then I will eat my cotton picking shorts! I may have to wash them down with a few pints of Guinness of course!
So why a form designer exactly?
It is just something which has interested me for quite some time now, but with so many such tools around, this is always consigned to being little more than a hobby project really. Not something which will ever see me buy that luxury yacht I keep promising myself, or something which will enable me to bankroll some Premiership football club,... but fun nevertheless. Crap, this is one of the most enjoyable things I think I have ever worked on!
So what makes KwikForm so easy to use?
Well, for one thing, it does not present the user with a hundred and one disjointed windows to sift through everytime you wish to perform some action or other. Run KwikForm and all you get is your form - nothing else. No clutter, no mess and no messing! KwikForm itself does not present any kind of GUI with menu options or toolbars etc. It doesn't get much simpler than that - no sir! Right click your form, select to add a button control (for example), click the button and then drag it to it's allotted position and your form will be well on its way with a minimum of fuss and delay. Right click the button, select properties, select a property to edit... voila! Right click a previously added container gadget (for example), select 'Child Controls...' and the next submenu displays a list of all controls added to the container. Select one and... you get the idea!
There is also the fact that, unlike many other designers, KwikForm does not save its forms in some internal format and then require an additional menu option to 'generate Purebasic source'. Instead, forms are saved as Purebasic source code files in a similar way that the VB form designer operates. KwikForm generated source files contain a section which you should not edit. Add additional code outside of this section as you see fit. Load the source into KwikForm, visually edit your form and then re-save etc. What we are left with then is a source file which can be loaded into both KwikForm (to visually edit the underlying form) and into the Purebasic IDE to add additional code etc. Compile the code and you have immediate access to your visually generated form as well as your additional routines. To my mind, this is the way that designers 'should work'. Of course it would be even better if KwikForm could parse Purebasic code directly, but that is pushing things a bit for a 'simple designer'.
An interesting question, from my point of view, is whether the Pyrex visual report designer or the KiwkForm form designer is the more complex program to work on? Difficult to compare really, though of course I do make comparisons as the work progresses. They operate completely differently. Pyrex constructs the design canvas directly through GDI, physically drawing the report components directly onto the canvas etc. KwikForm, on the other hand, like many designers, uses proper controls. You add a button to your form at design time, then a proper 'live' button control is what you get! This is what I regard to be the easiest way of approaching a form designer (and is one used by many designers) although it does throw up a lot of rendering problems which do not exist if rendering controls 'off-screen' first and then using GDI to render these images. For example, place one button control on top of another (even if a temporary arrangement) and all hell can break loose! KwiKForm addresses these problems and at present the only control which still misbehaves in this regard is the cursed panel gadget. But then, I notice that this is the same for all other designers I can lay my hands on which also use 'live controls' at design time.

I think this is something we are just going to have to put up with where panel gadgets are concerned. Still, how often do we overlap gadgets anyhow?
Right, back to work for me then.