Here's, as promised, the alpha version of my new FBSL Mini Form Designer. It comes
as a standalone executable plus dependencies because I haven't yet documented the
source code in full. As soon as I have it ready and based on your observations and
tests, I'll release the entire source script.
Because a R(apid)A(pplication)D(evelopment) environment is a must for any serious
contemporary programming language. It is intended to assist FBSL coders in
developing attractive, user-friendly windowed interfaces based on the set of common
controls Windows provides as standard.
Because FMFD serves only the most urgent needs of FBSL users while the full-scale
FBSL Script Factory project that combines a highlighting editor and a visual designer
in an MDI environment, is still at its development stage.
What it doesn't?
- FMFD doesn't support multiple selection operations (FSF will have this feature);
- FMFD doesn't reflect current changes made to the form design and layout (FSF will
have this feature). Each change in the current form designer window must be followed
by generating a new code window, whereby all modifications to the code made directly
in the preceding code generator window will be lost in the new one;
- FMFD version alpha's code generator doesn't produce a separate block of control
(ex)style constants for those of them that are not presently built into, and recognized
by, FBSL itself (this feature will hopefully be available in FMFD version beta). Until
then, the numeric values for these (ex)style constants will have to be added by the
- FMFD version alpha does not generate any code for setting the control-specific
extended styles (see "Ctl Extended" button on the Styles pane). The problem is that
these styles can't be set in a usual way by SetWindowLong() with the GWL_EXSTYLE flag.
FMFD version beta will have this feature fully functional for every common control that
has specific extended styles. In the meantime, the user is supposed to add the appropriate
What it does?
- FMFD generates and saves an .fbs script template for the projected user interface
design which can easily be developed into a complete GUI application;
- FMFD generates a .vdf visual designer form file that stores all the relevant control
design and placement data for easy restoration and modification of complicated visual
- FMFD provides handy means to change standard and extended styles of control windows,
as well as a few basic control properties. All changes are readily made effective by
clicking the "Apply Changes" button. The entire form design may at any time be tested
in the real runtime mode by clicking on the "Runtime Test" toolbar button.
- intuitive and user-friendly MDI interface;
- adjustable optional grid with step ranging from 4 pixels up to infinity;
- optional snap-controls-to-grid feature;
- control Z-ordering via bring-to-front/send-to-back toolbar buttons;
- optional lock-controls toggle to avoid accidental misplacement of controls by jerky
- control copy/paste operations;
- VB-style Ctrl+arrowkey positioning and Shift+arrowkey sizing of controls unaffected
by the lock-controls toggle;
- VB-style cycling through the controls with the Tab key.
I hope you'll enjoy this new tool written entirely in, and for, FBSL. Each and every
of your observations, remarks, and suggestions will be most welcome.
Additions & Mods to Version Alpha as of January 22, 2007:
1/ Added the ES_AUTOHSCROLL style to the "Caption" edit box to enter long strings (1Kbyte max.),
and the ES_NUMBER style, to the Left, Top, Width, Height edit boxes.
2/ Added code to "Case IDM_FRONT/BACK" to change the order of control creation to correspond
to the actual visual Z-order.
3/ Added status bar messages.
4/ Added the following hotkeys:
- Ctrl+Alt+C -> copy the selected control;
- Ctrl+Alt+V -> paste a copy of the control at the current cursor position;
- Ctrl+Enter -> apply style/caption/size/position changes.
5/ Added automatic emission of style constants which are not intrinsically recognized by FBSL.
Note: FMFD DOES NOT LIST NOR EMIT (ex)styles which have numeric values of 0 -- these (ex)styles
are usually used by Windows on default when no other (ex)styles are specified.
Mods to Version Alpha as of January 23, 2007
1/ Changed the output format of emitting the missing (ex)styles from block Const's to #Define's. This saves memory and makes execution faster, as suggested by Gerome.
2/ Changed the control handle dimensioning code from separate Dim statements to a multiline Dim statement. This adds some freelance flavor to automatically generated script templates, as suggested by Gerome (
) -- see the accompanying FMFDTest.fbs.
Please reload the zip!