Revision History (Older Versions)
Version 2.10 (November 22, 2017)
The Function Manager was improved. The new version allows entire
functions to be copied. cut, and pasted.
Color Scheme Editor can now be opened with Control-E
Fixed a bug in the Color Scheme Editor. The effects the "dropper" tool.
If a transparent area of a shape is clicked, the color would be
Fixed some minor tab-order issues.
Version 2.9.2 (November 9, 2017)
The Save-As feature, in both the Main Window and the Color Scheme
Editor, works far better now. It will show the current name as a
Updated the Retro Computer color scheme.
Restored textboxes, that are used for expressions, to left-to-right for
Version 2.9.1 (November 4, 2017)
Fixed a bug that effected in Right-To-Left languages.
Version 2.9 (November 3, 2017)
Added support for Korean - special thanks to Inkee Jeong.
- New error message. When a function is used in an expression, it must
have a return value. The new error message properly explains, to the
user, what happened. Beforehand, the error was being handled by Type
Mismatch. This wasn't particularly helpful.
- Output Shapes were improved. Output can now include or exclude the
newline character. This will give better control over output - and allow
the "ASCII art" commonly used in beginning programming.
- Color schemes were improved. The colors of the Comment Shape can now
be customized. Beforehand, it used the same colors as the page.
- A few built-in color schemes were modified.
- Bug fix: When an error occurs, the system will show the shape that
cause the error. Unfortunately, the system failed to do this if the
error occurred in a different function (than the one being displayed)
- Updated the About Window. The new version of the About Window was
designed to maximum screen real estate. The old version was becoming far
- Minor updates to the Error Dialog and Message Dialog windows.
- Minor GUI tweaks.
Version 2.8 (October 7, 2017)
Added support for Dutch - special thanks to Ralf Djojomoenawi &
- If a function is incomplete (missing its return variable), it will
display in gray.
- The comment shape was updated. The left-side connecting line will
always use the color of the rest of the lines. The idea is to prevent it
from "vanishing" if the current scheme's Selection border color is the
same as the background color. In addition, the preview image no longer
displays the left-side connecting line.
- Fixed a bug that occurred when a function, that doesn't return a
value, is used in an expression. While the error message produced now
isn't the best, it is far better than before.
Version 2.7.1 (September 16, 2017)
Fixed a bug in Python generated code. Empty blocks were not including
'pass' statements. Special thanks to Clive Long for reporting the bug.
The internal logic used to draw shapes was updated.
Version 2.7 (September 6, 2017)
Added support for Indonesian - special thanks to Abdul Kadir
The Polish Translation was updated - special thanks to Robert
Updated the logic used to show the Add Shape and Clipboard pop-up
windows. Hopefully, this change will work better for those using WINE to
run Flowgorithm on the Macintosh.
Fixed a bug where lines wouldn't "line up" on Comment Shapes.
The Color Scheme Editor now has a "copy" dropper that will copy all the
attributes (text, fill, and border) from another clicked shape.
The colors used by Comment Shapes was redone. Now, both the text and
border will use the page's text (label) color.
Version 2.6.1 (August 10, 2017)
The Console Window now responds to pressing F5, F6, F7, and F8. These
are used to Run, Step, Pause, and Stop respectively.
The Italian Translation was updated - special thanks to Roberto
In the Color Scheme Editor, the image scrollbars work far better than
The graphic image, used the various shape edit windows, is better
horizontally centered between the window's edge and the text.
Version 2.6 (August 7, 2017)
- Added support for Farsi (Persian) - thanks to Vahid
Declare Shapes can now support multiple variables. The user can list
different variable names separated by commas.
- To accommodate older versions of Flowgorithm, the application can
now save programs in 1.0 and 2.0 format. The current format is 2.6. The current version can still open any previous file version.
- One of the redundant legacy fields, "variables", in the Declare tag, was removed.
This was designed for forward compatibility with older versions of
Flowgorithm (pre 1.7). Since Flowgorithm can now save to older
formats, it is unnecessary.
- The word-wrapping, used on shapes, was improved. Beforehand, the
text could, sometimes, fail to be vertically centered. The new
logic both resolves this problem and wraps based on syntactic elements
(such as operators).
- Printing was improved:
- The window now opens the Print Common Dialog window. This allows
the user to find printers, set advance features, and much more.
- An icon for portrait & landscape were added.
- Printer settings are now saved to the registry. This includes the
printer's name, landscape, and margins.
- Color Scheme Editor:
- Added a Save-As button.
- When a new color scheme is created, the hover color of the
'line' is now set to orange. Before, it was white.
- The system can catch, and report, Overflow Errors far better than it
- The Console Window now has a limit on the number of items in the
buffer. This prevents the system from running out of resources if (as an
example) a loop prints from 1 to a million. No errors are caused. Early
items are simply removed.
- The Turkish translation was updated.
- The Add Shape pop-up menu and Clipboard pop-up menu work better than
before. They should appear quicker and properly return focus to the main
window when closed.
- When the flowchart background is double-clicked, the Program
Attributes window will open. Before, the user would left double-click.
It has been changed to right double-click to avoid it being opened
- The message window was updated. In particular, the padding between
graphical elements was increased.
- Bug fixes:
- The thumbwheel on the mouse was moving the scrollbar, but not
updating the window.
- On the Gaddis Chart Style, the assignment caption had extra
- The Console Window no longer aggressively sets its Z-Order.
Before, anytime the window received output, it would force itself on
top of all the other windows. This made it difficult to stop the
program from the Main Window.
Version 2.5.4 (June 16, 2017)
- Fixed a bug in the Variable Watch Window. It was not
translating the label "Main" into the current language.
- Double-clicking on the main window's background will now
open the Program Properties window. This was an old feature that
was removed before the shape selection object was updated.
However, it wasn't re-enabled until now.
Version 2.5.3 (June 15, 2017)
- Updated an even better translation for Italian - Thanks to Roberto Atzori
- Improved the Color Scheme Editor. The internal logic, used
to determine if a color scheme was changed, was improved.
- Fixed a bug in the Color Scheme Editor. The Open Image
dialog was not being translated.
- The "If' Shape appearance was improved. Padding was added
around the text - so the line and text should not overlap.
- Some miscellaneous changes to windows - minor and probably
Version 2.5.2 (June 14, 2017)
- Updated the translation for Italian (fixing my Google
Translate text) - Thanks to Roberto Atzori
- Fixed a bug that prevented the key combinations of Control+
and Control- from zooming the main window.
Version 2.5.1 (June 12, 2017)
- Updated the translation for Traditional Chinese - Thanks to 黃昕暐
- Updated the Color Scheme Editor. Now the editor, opens the
current scheme. It also applies any changes to the main window.
- The icon used for Traditional Chinese (the Taiwanese flag),
was updated with a better version.
Version 2.5 (June 8, 2017)
- Added support for Traditional Chinese - Thanks to 黃昕暐
- Customized Color Schemes were added.
- Color schemes
can be created and edited with the use of a new Color Scheme
- The files are saved using the .fclr extension.
- To make
it easy to load schemes, "open" buttons were added to the Print,
Export Bitmap, Export Scalable Graphics, and Change Chart Style
- The Variable Watch Window now graphically displays the name
of the current function.
- Chart preview images (used in the Print, Export Bitmap,
Export Scalable Graphics, and Chart style) were improved.
They are larger, contain an additional shape, and show text on
- Auto-scrolling, used when the window automatically scrolls
when selecting shapes, works far better now.
- Window activation works better now. Beforehand, if the user
chose to show a window, but it was minimalized, it stayed
minimalized. Now, the window will normalize.
- Source Code Viewer:
- PHP was added. It contains both
the "hanging" and "aligned" brace formatting styles.
- Apple Swift 3 was added. Swift 2 was retained.
- Fixed in a bug in Python generated code. The code was
using 'true' and 'false' rather than 'True' and 'False'.
Thanks to Jon Rios for reporting this.
- The "Traffic" color scheme was modified to have a blue
background. The original color scheme can still be downloaded on
the Color Schemes page.
Version 2.4.3 (March 18, 2017)
- Fixed a bug in C# generated code. The generated source code uses
'boolean' rather than 'Boolean'.
Special thanks to Jeffrey Burton.
Version 2.4.2 (March 18, 2017)
- Fixed a bug in Python generated code. The bug affected For Loops.
Special thanks to Dave Braunschweig.
Version 2.4.1 (March 17, 2017)
- Fixed a minor bug that caused the Function Dropdown to flicker when
the language was set to Thai.
Version 2.4 (March 17, 2017)
- The modulo operator (mod, %) is now restricted to positive
integers. Different programming languages treat negative integers
differently - some inheriting the negative sign from the dividend and others the divisor. This can
cause issues with code generation.
- The Console Window and the ToReal() intrinsic function will now
accept commas as the decimal-point. Beforehand, the system would
only accept the period for (for ToReal) and either a comma or period
in the Console Window. To make the output consistent, the system
will always use the international notation - the period.
- The main toolbar was updated. The icon for Clear Breakpoint was
removed and replaced with an icon for Layout Windows.
- When a shape is edited, the system now clears the selection.
This will allow the user to see the shape change from gray
(incomplete) to color.
- Source Code Viewer:
- Improved Java generated code. In particular, the Scanner
library is only included if needed.
- Fixed a major bug that caused the application to crash if a new
Input Shape added.
- Fixed For Loops in Python. For loops use the range() to
create a series of values. However, this does not include the
ending value. Special thanks to Paul Gardner.
- Fixed the generated input functions for VBA. The name
"input" conflicts with a reserved word. Special thanks to
- Cleaned up the IBO Pseudocode.
- Fixed a minor display bug that occurred when a new function was
added. The screen was not updating the alignment - so the new
function was being left-aligned rather than centered.
- Fixed some translation errors (that I made). Special thanks
to Roberto Atzori.
- Fixed a formatting bug in the Console Window. When the
information was displayed in simple text, it was not being aligned
Version 2.3.1 (March 9, 2017)
- Fixed a minor bug with the colors displayed in the Console
Version 2.3 (March 8, 2017)
- Added support for Arabic - Thanks to Amr Ibrahim Khudair
- Added support for Slovenian - Thanks to Gregor Anželj
- The application can now support right-to-left languages. This
required extensive testing and some major internal changes. Special
thanks to Amr Ibrahim Khudair for all his help.
- Added IBO Pseudocode to the Source Code Viewer.
- Flowcharts are now centered in the window. Beforehand, the
flowcharts would always start left-aligned.
- Resizing the main window works far better now. This was an
oversight on my part.
- The scaling of the flowchart works better now.
- Fixed a bug with the ToInteger() and ToReal() intrinsic
functions. They were not allowing the dash "-" used to denote
negative numbers. Thanks to Roberto Atzori for reporting this.
- The icon on the "Enter" button in the Console Window was
Version 2.2 (October 13, 2016)
- Added support for Turkish - Thanks to Cafer Usta
- Added support for Mongolian - Thanks to Tuvshinbayar
- The Italian translation was improved. As new features were
added to Flowgorithm, I manually translated new fields. However,
some were not accurate. Thanks to Roberto Atzori for his help.
- The Export to Vector tool was improved. In particular, Scalable Vector Graphics files
will now work better on many websites and applications. Beforehand, text was aligned vertically using
the "alignment-baseline" attribute. However, not all applications
support it. So, text is now manually aligned.
- Fixed a bug that affected internal lookup tables. It affected
Version 2.1.2 (October 3, 2016)
- The Print feature now uses generated EMF files. The resulting
documents will print quicker and will be higher quality.
- In the last two updates, the size of the text on the Error
Window was too small. I've restored the original appearance.
Version 2.1.1 (September 30, 2016)
- Enhanced the Most Recently Used (MRU) file list. If a file is
not found, it will be removed from the list.
- The MRU will now only be saved to the user's local settings.
- Fixed a minor bug in EMF exported files. The character width of
the ampersand (&) was not being measured correctly.
Version 2.1 (September 27, 2016)
- Added support for Polish - Thanks to R. Robert Gajewski
- Added support for Thai - Thanks to Pongsathorn Sraouthai
- Added a Most Recently Used (MRU) file list.
- The Print Window now displays the printing status on the main status bar
(rather than a local one).
- Updated the EMF files created by the Export to Vector utility.
They should print better than before.
Version 2.0.2 (August 16, 2016) - Bug fix
- Fixed a bug that occurred when a variable was assigned data that
is incompatible with its data type (basic type mismatch). The system
wasn't properly treating it as an error.
Version 2.0.1 (August 4, 2016) - Minor update
- Updated the Hungarian translation.
- Fixed a flaw in the British English translation.
- Fixed a bug in the Source Code Viewer for C++ generated code.
- The Console window now displays a message if a Breakpoint is
- Made some configuration changes to improve installation.
- Some minor cosmetic changes.
Version 2.0 (August 2, 2016)
- Added a new shape: Breakpoint
- The new shape is available from the Add Shape pop-up menu. It
acts as the same as the breakpoint feature found in most
- Add a "Remove Breakpoints" icon to the main toolbar.
- File format was updated. The "fileversion" now displays "2.0"
rather than "1.7". This is based on that fact that newer programs
can save the <breakpoint/> tag. This won't be a problem for older
versions of Flowgorithm. They were designed to simply ignore unrecognized
tags. So, if a program (that contains breakpoints) is opened in a
older version, they will simply be absent.
- Easy right-clicking shapes. Single shapes can be simple clicked and
cut/copy/pasted. This is a highly requested feature.
- Added buttons the Edit Function window that allows parameters to be
- New graphics library! The graphics engine was completely rewritten
using a new design.
- Shapes appear
better - especially the curved edges used by the terminal shape.
- Arrows now display a fine tip (the arrow heads are triangles).
This will be apparent when the flowcharts are displayed in high
- Mouse-overs highlight the entire line. Beforehand, it only
highlighted the top or bottom half of the line.
- Miscellaneous improvements
- Add Shape popup menu displays much, much better.
- Auto scrolling works much better (and is much faster).
- Layout Windows received some minor aesthetic improvements.
- New message dialog windows. The new windows use custom icons
(information, questions, etc...). Also, the buttons are now
- Colors & Styles
- New color scheme: Magic. This color scheme is a homage to Harry
Potter. It uses the 4 house colors, the Sorting Hat, and
- New color scheme: Traffic. This color scheme is based on colors
used in traffic signs. It was inspired by the new breakpoint shape
(which is an octagon).
- Some of the other color schemes were tweaked slightly.
- The Add Shape popup menu shows the "hover" effect using the
a new color. Before, it was always using the menu label color.
- Added a new chart style: Blocks. The style only uses the
- New: Export to Scalable Vector Graphics. Flowcharts can now be
exported to Scalable Vector Graphics (SVG) and Enhanced Metafiles
Version 1.12.1 (May 8, 2016)
- Updated the language icons. I was displaying them in 8-bit rather
than 32-bit. They should look much nicer now.
- Added the current language to the status bar of the main window.
This was designed to make it easy for someone, who doesn't understand
the current displayed language, change it. I
didn't include the flag image. The flag is designed to help the user
locate the correct icon, but seems a tad unnecessary on the main window.
- In the Export Image window, the margin (in pixels) inputbox was
changed to a combobox. The user can enter any value they want, but it
has the most common ones available on the drop down list.
- The visual styles manifest was removed from the installation script.
This was originally added so the tile background would not appear red in
Windows 8.1. However, the issue became moot with the release of Windows
- Bug fixes:
- The Print Windows wasn't showing its progress in its status bar.
- The Export Image Window wasn't showing updates in its status
Version 1.12 (March 30, 2016)
- Added support for Russian - Thanks
to Olga Cooke.
- Updated the generated C++ code to use the vector template.
- Fixed a translation error in Galician. This was completely my fault.
Version 1.11.3 (January 29, 2016)
- Added support for the Brazilian dialect of Portuguese - Thanks
to Theldo Cruz Franqueira.
Version 1.11.2 (January 17, 2016)
- Added the Play, Step, Pause, and Stop buttons to the Console Window.
These have the same behavior as the buttons on the main window.
- Made some internal changes to make the Console Window draw better.
- I forgot to fix a bug in Lua generated code. It was missing the -1 for
Version 1.11.1 (January 15, 2016)
setup correctly for decreasing values.
- Fixed a bug in Python Code. A comma was missing for decreasing
Version 1.11 (January 11, 2016)
- Added support for Japanese - Thanks to Saito Yutaka
- Clipboard Popup Menu now follows the current color scheme.
- Rubén Castiñeiras Lorenzo released new versions of his Spanish
(Castilian) and Galician translations.
- Added a new tab to the About Window. The new tab lists the names of
everyone who has helped find bugs and give valuable feedback.
- Source Code Viewer:
- To denote the start of the
programs "main" code, the source code often contains a comment. Now, the
comment will only be added if needed.
- For Java, the generated class is now called
"JavaApplication". This follows the defacto standard used by Java IDEs.
- Made some internal changes to the Add Shape Popup Menu.
- Bug fixes (thanks to Mathieu Kourouma):
- Made some internal changes that prevent the Variable Watch Window
from crashing on certain versions of Windows.
- Fixed a various grammatical and spelling mistakes.
Version 1.10.2 (December 24, 2015)
- Added support for French - Thanks to François Capon
- Fixed a typo in the English translation (thanks again to
- Updated the Change Translation and About windows. The
languages/names are now displayed in a ListView control.
- Made some changes to the Add Shape menu so that it loads quicker
and, hopefully, with less flicker.
- Fixed a small flaw in the Edit Comment window. It was displaying an
icon and appearing in the Windows Task Bar. This wasn't consistent with
the rest of the edit windows. I doubt anyone noticed.
Version 1.10.1 (December 18, 2015)
- Modified the Swift code created by the Source Code Viewer. The
intrinsic function Random() now maps to the Swift random() function.
- Made some internal changes so the program loads faster.
- Some miscellaneous GUI tweaks.
Version 1.10 (December 17, 2015)
- Added the ability to control execution speed. The system now
supports: Fast, Medium, and Slow. When set to medium or slow, the user
can passively watch each shape execute. It essentially works like the
user pressing the "Step" button.
- The behavior of the Play, Step, Pause, and Stop buttons were
- Added Apple's Swift to the Source Code Viewer.
- Added a new color scheme: Vibrant.
- Made some cosmetic changes to the window headers. Now, each draws a
line on the top and bottom. The goal was to prevent color clashes with
the window's title bar.
- When the window is resized, it now makes sure it doesn't size it
larger than the screen. Before, it was always defaulting to 800x600.
- Fixed an error in the Italian translation. It was my fault, not the
original translator. When I changed the translation file format, I
mistranslated "Assignment". Thanks to Roberto Atzori for letting me
Version 1.9.2 (November 17, 2015)
- Fixed an error that affected parameters displayed in the Edit
Function window. The parameters weren't being translated correctly.
Version 1.9.1 (November 15, 2015)
Version 1.9 (November 14, 2015)
- Addedsupport for Portuguese - Thanks to Jorge Duque.
- Chart styles:
- When selecting a chart style and color scheme, the preview image
now shows the proper colors and shapes. This preview is used in the Change Chart Style
window, Print window, and Export Image window. The "Color Preview"
caption was removed since it is no longer needed.
- Added a new chart style: Default (Descriptive). It is identical to
the "Default" chart style, but uses descriptive text on each shape.
- Added a new color schemes: "Blueprints" and "Sacramento State".
Eventually, the application will allow custom color schemes to be
- The current color scheme is now used in dialog windows. In previous
versions, the window header background was always blue. With the
change, the background color changes for each scheme.
- The Add Shape popup menu was modified to handle the new color scheme
design. Changes include the hover effect as well as the border of the
- Most dialog windows were increased in size.
- Added a Copy button to the Console Window.
- Made some internal changes in preparation for a Macintosh/Linux port.
- Random number generation was improved. This is an internal change.
- Bug fixes:
- Fixed a bug in For Loops. The system was not checking the range
before executing the first time.
- Fixed a bug in QBasic generated code. The dollar suffix was missing
on the call to MID$.
Version 1.8.2 (October 5, 2015) - Minor Update
- Fixed some minor translations issues such as failing to put a
tooltip on the Functions Dropdown Menu.
- Made some improvements to Java generated code. In particular, string
comparison was fixed.
- Made some improvements to QBasic generated code.
Version 1.8.1 (October 3, 2015)
- Added languages:
- Spanish (Castilian) - Thanks to Rubén Castiñeiras Lorenzo.
- Galician - Thanks to Rubén Castiñeiras Lorenzo.
- Italian - Thanks to Riccardo Scorretti
- Source Code Viewer:
- QBasic was added.
- The Java/C++/C# code was improved.
Beforehand, it wasn't using the proper Usual Arithmetic Conversions
for the algebraic operators. This resulted in unnecessary casting.
- The modulus operator is no longer restricted to integers.
buttons and windows were resized. The changes were made to either better
accommodate other translations or to simply make the window look better.
- Bug fixes: If a function was renamed in the Function Manager, the dropdown list wasn't being updated.
Version 1.8 (August 15, 2015) - Major Update
- Beside English, Flowgorithm now supports multiple spoken languages. Please check out
the "Change Language" menu item under Tools. Supported languages
- Chinese - Thanks to 苏晓 .
- Czech - Thanks to Honza Vaněk.
- German - Thanks to Andrej Preradovic.
- Hungarian - Thanks to Péter Bernát.
- Spanish - Thanks to Juan Carlos Rosales Larralde.
- A new intrinsic functions:
- ToFixed() will convert a real to a string with fixed
number of digits after the decimal point. For example:
ToFixed(3.14159265, 2) will return the string "3.14".
- ToCode() will convert a string into a character code. It is the
opposite of ToChar().
- Registry is used to save settings. If the application is started in
Administrator Mode, it will save settings to the Local Computer. This
will used as the default for any new users (which are saved to the
- Source Code Viewer:
- Perl was added.
- When stepping through a program, the window will now keep the
current statement visible.
- Line numbers can now be displayed. To save screen space, the feature is unchecked
- Lua source code was improved. The source now
uses a simple helper function for array access. Lua uses 1-indexing
while most languages (including Flowgorithm) uses 0-indexing.
- The C# and Visual Basic .NET code was changed slightly. The helper
functions for inputting values were renamed.
- If a comment contains multiple lines (the user hit manually
added a newline), multiple comments were will be produced.
- Color schemes and styles:
- Added several color schemes. These include: Paint, Paint (dark
background), Cyberspace, and Retro Computer (1980's EGA color).
- Added a new style:
Classic (Trapezoid). This is a variation of the classic flowchart
format which uses trapezoids to represent input/output (rather than
using a parallelogram for both).
- Added a new style: Classic (GOST). This is a slight
variation of the classic style that is used in Russia and other
states in the vicinity.
- The Add Shape Pop-up Menu now shows the same shapes as the
current flowchart style. Beforehand, it always displayed static
images based on the "default" style.
- The Source Code Viewer, Console Window, and Add Shape Pop-up Window now use the current color scheme.
- Console Window:
- The prompt text was moved into a Status Strip.
- Added a small icon to the Enter Button.
- If the output is displayed in the text-only format, rather than
"chat bubbles", it will be displayed in Courier New.
- The Variable Watch Window was improved. If the window is wide
enough, the variables will be displayed in multiple columns. This
feature can be disabled by unchecking the Columns button.
- The Error Window now shows the "Cause" rather than a more generic "Details" field.
- The mouse scroll wheel now works with the main window, Source Code Viewer and Console
- Printing was improved. The color scheme's background color is used on the whole page (rather than just the bounding square for the
- The Layout Windows feature was modified slightly. The "Variables"
layout sets the Variable Watch Window at 1/4 of the screen rather than
- Added a Stack Overflow Error. If recursion is being taught (or
implemented accidently), the system will prevent a run-away recursive
call from taking down the application. Instead, an error message will be
displayed. The maximum internal stack size can be get in the registry to
a larger value if needed (which should never be the case).
- Bug fixes:
- Fixed a bug that affected For Loops. If the range was incorrect
(i.e. it should never execute the block), it was still executing it
- Fixed a rare bug with the clipboard. It was possible to copy "zero" shapes to the clipboard.
- Fixed a bug in generated Python code. Python uses the same Usual
Arithmetic Conversions as C, but the code was not converting
operands to floats (if needed).
- Java and C# were not putting the
"static" modifier on user-defined functions.
- Fixed a typo in the Comment Edit Window.
Version 1.7.4 (February 12, 2015) - Minor Update
- Fixed a few minor spelling errors.
- The captions were made more consistent throughout the application.
Version 1.7.3 (February 9, 2015)
- Fixed a rather careless bug with the contextual menu that appears
for highlighted shapes. It should just appears after a single
right-click. However, it was requiring two clicks. Fortunately, the
Control-X, Control-V and delete buttons were working.
Version 1.7.2 (January 19, 2015)
- Minor changes to some error windows.
Version 1.7.1 (January 7, 2015)
- Source Code Viewer:
- Cleaned up the Delphi/Pascal generated code. The new code will make better use of dynamic arrays
and the SetLength() function.
- Updated some internal logic so the window updates better - in particular,
the vertical scroll bar.
- The system
will no longer display a syntax error if the user clicks "OK" on an
incomplete shape. The shape will still be displayed in gray.
- New shapes can be added by just clicking once on a line. Beforehand, the Add
Shape window would only appear if the line was double-clicked or
right-clicked. To edit a shape, you still need to couple click.
Changed some menu labels and tooltip labels.
Version 1.7 (January 2, 2015)
- Language improvements:
- Arrays can now be passed into functions. Function parameters
were also updated to support this feature.
- For Loops can now implement increasing and decreasing order.
Beforehand, For Loops were restricted to increasing order.
- Added two more trigonometric functions: arcsin() and arccos().
- To work with arrays, the size() function was added. It returns
the size (number of elements) of an array.
- Source Code Viewer:
- Added the Delphi / Pascal programming language.
- Internal changes were made so blank lines are inserted far more
logically than before. Basically, blank lines are inserted before a
group of comments or after a group of declarations.
- Added a button that allows you to disable the vertical padding
on each line. Without it, the text is not as cosmetically appealing,
but it is more condense.
- Fixed a cosmetic bug in VBA generated code. Subs were being indented one level too many.
- The Declare Shape was changed to make it easier to declare arrays. The
old format had the user write a very "code-like" statement. The new
version uses drop downs and should be more natural.
- File format was updated to support the new features. The "fprg" file
is compatible with older versions of Flowgorithm - although, naturally,
the new features will not be present.
- Made some minor modification to the error window.
Version 1.6.1 (December 14, 2014)
- Added auto-scrolling. If the user is selecting a region with the
mouse, the window will automatically scroll if the mouse is near the
edge. This behavior is found in most editors today.
- The Chart Style window, when opened, will show the current settings.
Before, it was always defaulting to "default" in "pastel".
- Fixed a bug that caused the system to crash if an invalid
identifier was entered.
- Fixed a few minor spelling error: affect vs. effect.
Version 1.6.0 (December 7, 2014)
- Language improvements:
- Added a new constant: Pi. You can now used PI in your programs
without having to manually declare a variable or use the literal 3.14...
in your expressions. In generated code, it will map to the language's
- The Equal-To and Not-Equal-To operators can now compare two Boolean
- I added a bunch of identifiers to the "future expansion" list. These
will be invalid to use for identifiers.
- The Export to Image File tool now allows you to specify if there
will be a margin (measured in pixels).
- The Chart Style button, on the main toolbar, lets you select a color
scheme and a chart style. The color schemes match the ones found in the
Print and Export to Image File windows. This window will be expanded in
- I also added a "gray scale" color scheme.
- Double-clicking (or right-clicking) on the flowchart background will
no longer open the Program Attributes window. Users found this annoying.
- I made the Input Shape a tad more blue. It appeared purple on some
- Bug fixes:
- If an array element is out of bounds, the error window was not
showing the correct upper bound.
- If a variable name is invalid (predefined), the system was not
alerting the programmer or causing an error
Version 1.5.0 (November 22, 2014)
- The Variable Watch window now can display arrays.
- Added a new intrinsic function: ToChar(). It will convert an
integer, representing a character code, into a character.
- Source Code Viewer now supports:
- Added Lua
- Added Ruby
- Added VBA (Visual Basic for Applications)
- Bug fixes:
- Made internal changes designed to eliminate a comma/decimal
point error. The "decimal mark", used in real numbers, can either be a comma or period -
depending on the culture. Europe, in particular, uses a comma. The
software was not handling the difference well. The new code will use
a period for all cases.
- Fixed a minor bug that affected the code generator. It was not
clearing the 'current statement' color properly.
- Removed multi-dimensional arrays. They are not really needed for
an introductory programming tool. Also, multi-dimensional arrays are
supported by the new generated languages.
Version 1.4.3 (October 18, 2014)
- Made some changes to avoid the crashing issue that affects some
users. I'm pretty sure that the error was resolved.
- I updated the internal parser tables so that variable
identifiers and string literals support Unicode characters.
Identifiers can now start with any Unicode "letter" character and
can be followed by zero or more Unicode letters or the digits 0..9.
- The Source Code Viewer now saves text in UTF-8.
Version 1.4.2 (October 17, 2014)
- Made some minor changes to how stepping works:
- The logic used to display the current shape was improved.
- Comments are now skipped.
- The Layout Windows tool is now displayed with a white background.
This is purely cosmetic.
Version 1.4.1 (October 16, 2014)
- When stepping through the Main function, the system will now wait on the
"end" terminal. This is the behavior on all other functions, but I forgot to give
this behavior to Main.
- Fixed a flaw in C++ generated code.
- The Source Code Viewer now saves text using the carriage-return
+ line-feed combo to terminate lines.
- Added a window that will catch any unhandled errors and copy the
error information to the clipboard. Hopefully, this will help solve
Version 1.4.0 (October 13, 2014)
- Debugging / Demonstration:
- Added a new Variable Viewer window. When stepping through a
program, this window will show the current variables. Each data
type is displayed using a unique color: integers (blue), real
numbers (purple), strings (red), Booleans (cyan). Arrays will not be
displayed - at least for now.
- The Layout Windows tool was revamped. Since variables can now be
displayed, the number of different screen configurations also
increased. The application will now display a window with several
preview pictures. You can either select "Layout Windows" from the menu or press
- When stepping through a program, the system will now keep the
current statement visible. This means it will automatically change charts and/or move the scrollbars.
- The system will also jump to a shape if an error occurs.
- If an error occurs when a function returns a value, the ending
terminal will now be highlighted in red.
- When a program is being loaded/saved, the status bar (at the bottom)
lets the user know what is happening. Also, the toolbars are
disabled at this time.
- The 'Export to an Image File' utility now adds the name of the
flowchart to the default name.
- The main window now zooms in and out far more smoothly.
- The Console Window was improved. The "chat bubbles" maintain better
margins with the left and right side.
- The Flowchart Style dropdown was replaced with an icon. This was
done to save space.
- Added an icon for the Variable Viewer. The Source Code Viewer was
changed to match the style.
- Source Code Viewer:
- Added C++.
- Source code was greatly improved. If a feature (such as a random
number generator) is not used, then the source code will not contain
- A new dropdown menu was added to the Source Code Viewer. The
dropdown displays the "style" of the source code. Beforehand, the
language dropdown had text like "Java (hanging brace)" which got too
verbose after I added C++. For now, the style dropdown just
displays "hanging brace" or "aligned brace" for C++ and Java.
- If the Copy Button is clicked on the Source Code Generator, it will tell the
user if text was copied. Also, if the source is empty, an error will no
- Bug fixes:
- Fixed a bug with Call Statements. If the program is executed, and
the statement is still gray, it caused a runtime error.
- Also fixed another bug with Call Statements. If the user causes a
syntax error, then the error will persist even after it is edited.
Basically, it wasn't resetting its "Syntax Status".
- The step value in For Loops cannot be negative. This is just a
limitation by Flowgorithm. If a negative value is used, an error
will now occur.
Version 1.3.3 (September 13, 2014)
- If a shape is edited, while the program is running (i.e. stepped
into), the flowchart will now stop and reset.
- Programs will now only be marked as 'changed' if a shape is
changed (rather then cancelled).
- The error messages for syntax and lexical errors were improved. They
were a tad obtuse before.
- If the Layout Windows feature is used, and a window is maximized, it
will be normalized.
- Source Code Generator:
- Fixed a minor Visual Basic generation bug. The source
contained "end class" rather than "end module".
- Fixed a Python generation bug. If code is generated, when a
Declare Statement is incomplete, the system reports an error.
Fortunately, it does not crash.
- Generated code for C#, Java, and Python now handles backslashes.
Flowgorithm doesn't have backslash override codes. So, a backslash
is always just a backslash. The generated code will now convert \ to
Version 1.3.2 (August 26, 2014)
- A bug with copy and paste was fixed. The order of pasted items would
sometimes be incorrect.
Version 1.3.1 (August 24, 2014)
- Fixed an alignment bug for the false branch of If Statements. This
was purely cosmetic - and I doubt anyone would have noticed.
- Python print statements, when incomplete, will show parenthesis.
This is cosmetic.
- Added the Program Attributes window to the Program Menu.
Version 1.3.0 (August 22, 2014)
- Flowcharts can be saved (one function a time) to image files. You
have the same basic features as Print.
- Python was added to the Source Code Viewer
- Added a "Check for Updates" feature. It doesn't run automatically. I
didn't want it to become an annoying popup window on lab computers.
- When auto-arranging windows, the system will normalize windows if
they were maximized.
- Fixed a bug in the Source Code Viewer that affected inputting into
an array element.
Version 1.2.0 (August 14, 2014)
- Flowcharts can now be printed. The feature allows users to select
one of three different color schemes: the default pastel, black and
white outlined (a great non-color option), and black and white solid.
- Added some links to the Help Menu.
- Made some internal changes that should help refresh the screen
Version 1.1.2 (August 11, 2014)
- Some minor changes before the semester begins.
Version 1.1.1 (August 10, 2014)
- Some minor cleanup
- Input Statements can now read array values (like they should have
Version 1.1.0 (August 8, 2014)
- Comments were added to the flowcharts. Comments do not affect how
the program is interpreted or behaves. They are useful for documenting
information about the program - for programmers to read.
- Added zoom buttons to the Console Window.
- Added zoom buttons to the Source Code Viewer.
- Gaddis Pseudocode was improved. If there is only one function, Main,
the Source Code Viewer will only show the statements rather than a
"Module Main" block. This was designed to mimic the examples used in
Version 1.0.2 (August 6, 2014)
This was the first release of the program. There was a version 1.0.0 and
1.0.1, but they didn't make it to the site.