This article introduces a Small Basic program called "Shapes".  This is a program for editing picture with Small Basic Shapes objects.


Output of "Shapes" program is a Small Basic program which shows picture you created.  So you can modify the output program to move and rotate the picture.  Program RQB683-3 is a sample output program.


These instructions are for Shapes 1.5b.


Import as program ID XFZ657-15, remove comment from lines with File objects and save the program as "Shapes1_5b.smallbasic".

Pen and Brush

Click Pen Width menu and change the pen width.  Click Pen Color menu and select pen color.  Click Brush Color menu and select brush color.


Click Rectangle, Ellipse, Triangle or Line menu and drag on the window to draw these shapes.  Created shapes can be re-sized or rotated to drag one of the pinches on the shape.  Click twice on the menu to add shapes consecutively.

Cut, Copy and Paste

Select a shape and click Cut menu to cut the shape, Copy menu to copy the shape.  After cut or copy, click Paste menu to paste the shape.  Cut and Paste will change the shape z-order also.

Save and Open

Click Save menu to save shapes to a Small Basic file.  On the textbox on Save popup window, push Ctrl+A and Ctrl+C to copy the source code, paste it to Small Basic IDE or your text editor and save it as a Small Basic program.

Click Open menu to read shapes from saved file. On the textbox on Open popup window, enter filename of the saved shapes program.

Supplemental Tools

Following tools are for Shapes.

  • Converter from Shapes to PowerPoint VBA (XQD349) - This tool converts shapes created with Shapes editor to a PowerPoint VBA macro.  So created shape array can be converted to shapes in PowerPoint, then the shapes can be converted to a image file using [Save as Picture] option in PowerPoint.  The PowerPoint file is uploaded here.


Following list shows typical versions of Shapes editor.

Version Released Program ID Description
0.72 2012-09-11 XFZ657-7 Oldest version which is introduced in Small Basic Forum.
0.8 2012-09-12 XFZ657-8  Supported re-sizing shapes.
0.9 2012-09-14 XFZ657-9  Supported rotating shapes.
1.0 2012-09-15 XFZ657-10 Supported copy and paste.  [*1]
1.12 2012-09-18 XFZ657-11 Supported file input.  [*2]
1.2 2012-09-20 XFZ657-12 Supported shortcut keys.  [*2]
1.31 2012-09-20 TLW744-0 Supported palette loading and consecutive shapes addition.  [*2]
1.42 2012-10-16 TLW744-3 Supported cursor keys and new UI for shapes menu.  [*2]
1.5b 2013-03-30 XFZ657-15 Supported to run output program in remote.
1.7b 2014-10-12 XFZ657-16 Supported grid and changed window size.  [*3]
2.02b 2015-01-09 XFZ657-19 Supported SVG file format. [*4]
2.1b 2015-02-05 - Supported new. [*5]

[*1] A part if this program is published as GTV460.  This part outputs move and rotation code.  You can insert GTV460 in WriteShapes subroutine if you need.
[*2] A part if this program is published as GTV460-0.  This part outputs move and rotation code.  You can insert GTV460-0 in WriteShapes subroutine if you need.
[*3] A part if this program is published as GTV460-1.  This part is [Open] subroutines.  You can replace GTV460-1 for dummy ReadShapes subroutine if you need.
[*4] Published version doesn't have comments.  Full source code and binaries are uploaded to CodePlex.
[*5] Not published to be run in browser.  Full source code and binaries are uploaded to CodePlex.

Known Issues

Following list shows known issues of Shapes 2.02b.

  • "Shapes" doesn't work properly in remote environment (in a browser with Silverlight).
    • Rotated Triangle and Line become wrong places.
    • [Open] is not from file.  But can be pasted from clipboard.
    • [Save] creates only main and Shapes_Init subroutine.  Other subroutines are not created.

See Also