I am of the opinion that I don't know everything (almost but not all :-) ), so by distributing the source I am hoping others will continue to contribute to its developement, so that it could perhaps become something really useful.
The following is a developement history, starting at the latest.
Friday, March 16 2007 - Added the ability to load all supported files (.ff, .tdf, .mdf)
from the command line.
Thursday, January 11 2007 - Bug fix for static labels. Bitmap.f not loaded when
control has an image, Been there for a while. Probably because I have never used static labels!
Thanks to Dick for bringing it to my attention.
Saturday, December 30 2006 - Implemented a little mechanism to use the arrow keys when
adjusting controls. For those times when you've selected controls and then moved them out of
the box. Just use the arrow keys to resize the box instead of redrawing it.
Sunday, December 24 2006 - In the past week or so got around to enhancing the toolbar design tool.
After a whole year even! Ah well, better late than never!
Saturday, December 09 2006 - Updated the rebarcontrol to save more of its parameters
in the registry.
Re-added the original way to add controls i.e single click adds one control only. It is turned off
by default but the user can change it in the config file ( true to one-click?) or in the source
and recompile.
Saturday, November 25 2006 - Turns out the toolbar problem was related to this XP manifest file
or something like that. Thanks to Rod for the fix.
November 10, 2006 - Realize that the PreviewWindow would not show the bitmap when creating
toolbars. Seems that "dc.hdc" in the on_paint routine no longer works; had to use "GetHandle: dc"
instead.
October 22, 2006 - After _FOUR MONTHS_ I have finally found the bug! In July I realized
that closing multiple forms that were opened and then exiting the program it would not close.
Again I had to close it from the task manager. The trouble was using ~: in the control object.
It seems this default disposing method misbehaves when its code disposes another dynamic object.
Four months!!! oh man....
Thing is now another bug has popped up. Some change by someone somewhere has broken the toolbar code for
customizable toolbars. Once a change has been made the bitmaps disappear. The changes are saved
in the registry but they aren't being restored. I wonder if this the reason the toolbars in the
IDE were made non-customizable? Fix one, another is broken. Ah well...
BTW, the above problem affects all programs that use toolbar.f, including the example at the end
of toolbar.f.
June 22, 2006 - Separated the toolbars into two, the main toolbar and the control
toolbar. Both are still contained in the rebarcontrol. Played around with docking
and undocking the toolbars using code from RebarControlDemo.f. Except for a few issues
it works ok. Maybe I'll add this feature later.
May 27, 2006 - Updated the splitter-window templates using Rod Oakford techniques.
Much less code and much easier to modify. Thanks Rod!
April 30, 2006 - Added the ability to reposition the rebar according - top,
bottom , left, right - to preference. When left or right is selected the Forms List control
is disabled. It's too narrow to see the names of the forms anyway.
February 11, 2006 -
Found another change in ExControls.f that broke a portion of ForthForm's code. The stack
requirements for the GetString: method in the ListBox class was changed. Caused a crashed
in ChangeTabOrder.Hmmm...
Modified the control and form property dialogs to use spinnercontrols. Results in less code.
February 10, 2006 - Added provision for a spinner control. Not quite implemented as
the rest ( own button in toolbar, id etc ) but... ok ok, I am feeling a little lazy right
now but hey, it works!
In the process of the above found a bug in ExControls.f introduced when optimizations
were added by someone. In the UpDowncontrol WindowStyle: method an 'OR' was missing.
January 24, 2006 - Added error checking for spaces in the names of forms and
controls. Prompted after being puzzled why a form wasn't testing and no indication as
to the reason.
November 24, 2005 - Improved object of FileWindow class. Among other things, it
displays the associated icons for each file. For directories I use my own bitmap for now.
November 08, 2005 - Added a routine to close all ForthForm windows automatically.
Been trying to figure out how to do that for a while, instead of having to add the close
routine for every form to the close method for the main window. Seems to work now!
November 06, 2005 - I think I figured out the console problem. Seems to have been
a bug in the routine to check the integrity of a file. Newing and disposing objects before
main window ( or some reason! ) seems to be a no-no.
November 03, 2005 - Updated to use gdiFont class.
November 01, 2005 - Working on enhancing the toolbar design tool.
October 28, 2005 - Implemented help system as a child window of the main window.
Found use for that empty space. I will go along with it for a while to see if I will keep
it.
I've been noticing that when I am running ForthForm from within the console and I close
the main window and exit W32F it ( W32F i.e ) is not closing. I have to close it from the
task manager. This is on WinXP Pro. I will have to make some time to debug this but I
suspect it will be awhile before I figure out the reason.
October 24, 2005 - Discovered and fixed a bug in the "Move to Back" and "Bring to front"
routines. A wonder they ever worked! But they used to, I think...So much for bug free!
Not too long afterwards need to get some insect spray around here. Too many bugs!
Fixed one in the routine that saves changes to a control.
October 21, 2005 - Minor mod to allow sequential control creation. The last control
selected from the toolbar will always be created until reset. Slightly different to what is
used to but I think more intuitive in designing a form, yes?
October 20, 2005 - Added error checking of a file before opening.
Discovered a lurking bug tonight when I tried to save a blank form, something I had never
tried before. Resulted in accessing a null object. It's been there for a while...
( I wonder if ForthForm will ever be bug free!...yeah right)
September 25, 2005 - Ability to change font for a control added. Available from the
right click menu.
September 24, 2005 - Adding the ability to change the font in a control. Noticed something
interesting tonight while testing; it seems comboboxes and their derivatives have a minimum size
requirement.
September 03, 2005 - Property sheet ( yes I said sheet!) template completed. Also
add menu items to start SciEditMdi and Project Manager from ForthForm.
August 26, 2005 - Adding the ability to compile existing forms to simulate a
property form ( did I say sheet?).
August 20, 2005 - With a slight mod to SciEditMdi forms, menus etc. can be sent to
SciEditMdi from ForthForm for editing. SciEdit must be running for this to happen. If it
isn't the internal editor FormPad will be used.
August 11, 2005 - Removed Code Editor and reused FormPad. Integration of components
is foreseen for the future and rather than have dual editors I will try to see if I can integrate
with SciEditMdi. I just need to figure how to get SciEdit to load a file from memory! Maybe shared memory
or via clipboard or...
June 13, 2005 - Slight mods to box drawing routines.
June 06, 2005 - Added definitions for small footprint mode today...then discarded them.
I realize that adjusting the window size to be just big enough for the toolbar and the
statusbar would do the same thing, since the size will be saved and restored.
May 27, 2005 - Modified FileWindow object in the code editor to use a combolist control
instead of a textbox to show selected path. This displays not only the current path but
allows a path history to be kept and revisited quickly.
Converted the "Apply" and "Close" buttons in the Properties window to dual image buttons with text.
Really just an example of how to use them.
May 16, 2005 - Finally solved intermittent bug when selecting generic control. Toolbar
button would not reset.
April 23, 2005 - Additional way to add a control, normal click and drag or just click to create
a control of default size.
April 16, 2005 - Added Code Editor. Essentially a modified SciEdit in a splitter window
with a filelister object.
March 18, 2005 - Added the ability to make a form view only. No changes will be allowed when
a form is locked. This is accessible from the form popup menu.
March 13, 2005 - Found that elusive bug having to do with sizing forms. In the SaveProperties
function I was late binding the Window style; I should have been using the Window style
of the ActiveForm. So simple yet so elusive! (I think it's because I copied the routine
from the Form class).
March 11, 2005 - Minor changes for better synching with system colors. If settings are
changed all forms will be automatically updated. You can also select 'Refresh' from a any
form's popup menu to update all open forms ( in case for some reason they don't).
March 05, 2005 - Merge form property, control property and group action into a tabcontrol.
Interestingly doing so shows up a long time bug with sizing forms from the property window.
Let us see how we can fix this...
February 25, 2005 - Added ability to hide or show the monitor window.
February 13, 2005 -Fixed a bug in the FormProperties dialog.
February 12, 2005 -Made a little change in menus to enable/disable some options according to
what is being done.
February 06, 2005 -Updated GroupAction dialog to allow shifting and sizing of a group of controls by a specified
value.
January 08, 2005 -Tidy and rearrange some code, e.g menu definition now in its own file. Also added
more comments to source.
October 04, 2004 -Have gotten certain way with the menu generator. It can read a menu definition
from source code. In the future extended compilation will allow menus with such options as bitmaps
and easily accessible ids.
September 29, 2004 -Added a tabcontrol to the list of controls.
September 23, 2004 -Added a folder tree browser to the list of controls.
September 21, 2004 -A status bar is now optional for a form.
September 13, 2004 -Added options to change the super class of a form. A form can now be
compiled as a child-window, MDI dialog or default dialogwindow.
September 10, 2004 -Have been working on the menu generator for a few days now. Its usefulness
in practice is questionable but at least developing it is interesting.
August 31, 2004 - Added option to compile a splitter window as a child window.
August 27, 2004 -Using Scintilla control in FormPad for editing forms or whatever.
August 07, 2004 -Added splitter windows template generator for 6 templates. Further templates
can be derived by adapting an existing one.
July 31, 2004 -Added built in help display using the new Html control.
July 30, 2004 - Fully implemented a child window control. The positon and dimensions
of the control are saved in the form and available to allow for any control not directly supported by
ForthForm.
July 25, 2004 - Finally figured out the solution to the bitmap toolbar puzzle, thanks to
some Liberty Basic code, WIN32 API help and some interactive testing. I knew there had to
be a better way!
July 12, 2004- Discovered a serious bug in change control type. The code that
was added to allow the control to maintain its position in the tab order was incorrect. Fixed.
July 10, 2004- saved some mouse right clicking. Added the "Group Action" dialog.
July 05, 2004 - removed that XP specific toolbar. I never liked it anyway :-)
July 04, 2004 - Minor bug fix for when using background image and rebar control resized.
Added a toolbar specially for when running under Windows XP. Like I said, there gotta be a better way!
June 08, 2004 04:27:55 PM - ForthForm now opens multiple files simultaneously.
May 15, 2004 08:57:31 PM - Factored out Project Manager into a separate application. I figure it will make the distribution too
large.
6th May, 2004 - Reduce screen estate for editing form property.
30th April, 2004 - Added Project Manager. In addition relative load point versions no longer supported. Sorry!
20th April, 2004 - Implemented a rebar control. Further information on rebar controls can
be found in "Rebar.txt" or the MSDN website. Replaced the Forms List Window with a combocontrol.
7th April, 2004 - Changing a control type keeps position in tab order.
3rd April, 2004 - Notice a bug in opening .ff file from explorer. Fixed
31st March, 2004 - Added a feature to allow toolbar creation.
20th March 2004 - Merge session, compile all open forms to one file.
14th March 2004 - Added FormPad, an internal editor/viewer for forms and toolbars.
January 01, 2004 10:46:00 AM - HTML documentation for ForthForm in progress.
December 07, 2003 02:03:50 AM - bug fix in displaying of default bitmap for static bitmaps and bitmap
buttons.
December 05, 2003 10:50:12 PM - Added ChangeControl
to menu. Allows the changing
of control type e.g radiobox to
checkbox. To change a control first select the control, check the
type to change to in the toolbar and then select 'Change' from the
menu.
November 28, 2003 11:57:19 PM - Loading all auxiliary
files in ForthForm vocabulary.
Couple of bug fixes. Don't
ever forget to initialize object integers!
dbu November 8th, 2003 - 9:53 - Added simple Command-Line-Handling for opening
a ForthForm-File (*.ff) via double-click in Windows-Explorer
October 19, 2003 08:58:11 PM - I figured it out! I now understand why flat
toolbars were displaying on a white background. It has to do with
the brush registered in the window class. A parent repaints its
child windows and the WNDCLASS for the window object in W32F had a
white brush by default. If set to NULL the child is painted
the default system color. My flat toolbars are now displayed correctly.
October 6th, 2003 - 0:00 - Modified EditControlProperty form to use less screen real
estate.
Forms now compiled have an extension of .frm. This means that both a file
that uses a form and the form itself can have the same name.
Examples of this are Preferences.f and Preferences.frm, and
ControlPropertyII.f and ControlPropertyII.frm.
September 29th, 2003 - 20:12 - Implemented toolbar support using Windows library
class. Both toolbars were replaced by one customizable toolbar.
ForthForm now uses the registry to save its location and size as well as user
preferences.
September 19th, 2003 - 1:10 - Made the background image support optional in
preparation for the distribution of ForthForm with Win32Forth
releases. Anyone so desiring can define a dummy word "withbgnd"
(without quotes) before loading ForthForm to include background
image support. They will however have to obtain the FreeImage dynamic
link library on their own.
Fixed an interesting bug. Normally I would not think to edit a non-existent form
but in the first release if that was tried either a crash would result or the
editor would edit a file by the name "untitled.f". When
other persons are going to be using your program you must be
prepared for anything. I guess that's why they are so many beta
releases.
September 15th, 2003 - 16:23 - Implemented a feature
to save current status of system by "Save Session".
Right now any open forms and the BackGroundImage are saved. They
can be restored by "Load Session".
September 13th, 2003 - 0:27 - I've finally come up with what I think is a
workable solution. Almost from conception I have wondered how I could
make forms easily modifiable. If a form was created for an
application and modified it would normally be difficult to add any
further controls, due to how controls are implemented in Win32Forth.
Recompiling the form would erase any application
specific modications. My work around is to make a control
optionally global. Therefore controls that would be needed by the
application would be made global. These would then be reference
directly by name. Analysing a form I realize that primarily the
WM_COMMAND and the ParentWindow: method are the most used.
Methods have therefore been added that allow setting the
parent window globally as well as test the WM_COMMAND method. The
form can be later modified without any adverse effect.
The following is a code example: ( see TestExample.f for a working
example )