AXImageCanvas 1.0: The Supercharged Canvas with Database Binding!

CASTELLN (SPAIN) 19 August 2019- Javier Rodrguez ( announces the immediate release of AXImageCanvas for Xojo Desktop (Windows, macOS, Linux; 32 and 64 bits).

AXImageCanvas greately simplifies the task of displaying a Picture into the containing control area, with the ability to correctly display the image maintaining its original aspect ratio keeping the original picture at its full resolution. This can be done with any dropped image from inside the app, via a Picture File dropped from the Desktop, or another Picture dropped from another AXImageCanvas control or executing App, plus any copied picture from another app or source. Of course, the displayed image can be set programmatically, just passing the desired Picture Object (instance).

If the dropped image comes from a File, then the AXImageCanvas instance will keep a reference to the original FolderItem, so it is possible to do additional operations on it.

AXImageCanvas supports the Copy, Paste, Cut, Clear (Delete) and Undo actions selected from the app menu or using the equivalent keyboard shortcuts. The Undo feature provides a maximum of ten recoveries per AXImageCanvas instance.

AXImageCanvas supports the following picture formats:

  • GIF (first frame)
  • JPEG
  • PNG
  • TIFF

[h]AXImageCanvas and Databases[/h]

AXImageCanvas instances can be used in combination of any of the currently supported database engines (Database Edition):

  • SQLite.
  • MySQL / MariaDB.
  • PostgreSQL.

In these cases, and in addition of the previously described features (among others), it will take care of the usual CRUD operations; getting the picture for the specified record, creating new records, updating the current record or deleting the current displayed record (more on this a bit later).

This class also brings methods and capture keyboard events allowing navigation throught the records: first record, last record, next record, previous record; even if their ID are not consecutives.

By default the navigation between records works in Wrap Around mode, so if the user is displaying the picture for the first record and invokes the Previous record action, then it will display the last picture on the table database. Otherwhise, if the user is displaying the picture of the last record and invokes the Next record action, then the AXImageCanvas instance will display the first record of the table database. This behaviour can be changed setting the LoopThroughRecords Property, in combination with the NavigateRecords property.

The database engine used by the control instances can be changed on the fly!

Download the Fully Functional Xojo Demo Project
Watch the Demo Video at

[h]Price and Availability[/h]
AXImageCanvas 1.0 has a price of 30.00 euros for the Standar Edition, and 60.00 euros for the Database Edition; and can be downloaded and purchased directly from

Anynone can use the AXImageCanvas class from the IDE without restrictions when running your own apps in Debug Mode; but a license is required when youre ready to Build a project containing this class.

[h]In brief:[/h]

Name: AXImageCanvas 1.0

Standard Edition Product webpage
Standard Edition Price: EUR 30.00

Database Edition Product webpage
Database Edition Price: EUR 60.00

Trial Mode: Yes
Trial Limitations: No Limitations

I wanted to have a look at the example. I don’t know who thought that warnings are good idea to show for encrypted code. After deactivating all warnings I still can’t use the example because it needs both the MySQL and the PostgreSQL plugins to run.

Hi Beatrix,

Those plugins are part of the standard Xojo distribution.

Any suggestion is welcome.


Version 1.0.1 Released

[Added] General minor changes and improvements.

[New] selectionDelegate Public property. When not set to Nil, this object gets called when the user selects the control instance (i.e: the control has the Focus)

[Fixed] Now the project properly catch the exception when the path for the stored picture in the database is not reachable (for example using the provided example SQLite database).

Download the full functional Xojo Project demo from this link

Suggestions and comments are always well received!

Version 1.0.2 Released

[Added] Backwards compatibility to work with Xojo 2017r3 and later.
[New] AcceptDroppedImages property. When set, it accepts dropped image files.
[New] ImageDeleted event. If implemented, this event fires when the user (or code) deletes the image from the instance.
[Added] Other minor improvements based on customers requests.

Download the full functional Xojo Project demo from this link

Suggestions and comments are always well received!

Version 1.1 Released

[Improved] macOS Catalina Support
[Improved] Xojo 2019r2 Support “out of the box”. (Native API 2.0 rewriting is under testing now, available in the next AXImageCanvas Release).
[Added] Better Database support at compile time to reduce dependencies.
[Added] New entries to product documentation
[Changed] DoubleClicked Event Handler definition is named now DoubleClick to avoid collision with Xojo 2019r2
[Changed] AXImageCanvas Demo Project

Enabling Database Engines

In order to enable and use any of the supported database engines, now it’s mandatory to set the associated Constant value to True under the AXImageCanvasEnabledDB public module (included in the AXImageCanvas Folder inside the Demo project). SQLite is the only database engine active by default in these constants:

• AXImageCanvasEnabledDB Module default Constant values:

Constant Name Default Value
SQLiteEnabled True
MySQLEnabled False
PostgreSQLEnabled False

The reasoning behind this made this way is to ensure the support for Xojo Desktop Lite users, and the no inclusion of non-used Xojo databases plug-ins in the deployed applications using AXImageCanvas.

For example, this would be the Demo Project size compiled with several AXImageCanvasEnabledDB combinations on macOS:

SQLite MySQL PostgreSQL App size
True True True 43.1 MB
False True False 40.2 MB
True False False 37,7 MB
False False True 38.2 MB

Read the AXImageCanvas Documentation

Suggestions and comments are always well received!

Version 1.2 Released: API 2.0 compliant

While previous version was already compatible with Xojo 2019r2, for projects based on API 1.0, the new AXImageCanvas Distribution includes now two Xojo Demo Project Examples:

1. AXImageCanvas API 1
2. AXImageCanvas API 2

AXImageCanvas API 2 has all the changes required for properly work with new Xojo 2019r2 projects using API 2.0; including the code used by the class itself.

In addition, the new release adds a new property so AXImageCanvas is not silent anymore about errors in database accesses. By default, the instances display a dialog showing the error message associated with the last operation; but when the property RaiseDatabaseExceptions is set to True, then it raises an Exception that must be catched by the calling code.

Other minor fixes and improvements have been added along the way, both in the class and the documentation available online.

You can download the latest release from this link:
Read the AXImageCanvas Documentation

Suggestions and comments are always well received!