Create a Bar Chart in Xojo with the ChartDirector

Today I want to show you how you can easily create a bar chart, using MBS Xojo ChartDirector Plugin in a canvas in your Xojo application.

In our case we want to show a statistic about the favorite colors of the Germans. Here is the data we want to display

blue red green black yellow white gray brown purple orange
40% 19% 18% 16% 11% 8% 7% 7% 6% 6%

For this we first create three different arrays. An array that contains the individual values and a matching array with the labels. For the values we have to make sure that they are in an array of type double, otherwise they cannot be used later. Last but not least we create an array in which we define the colors. In our case we have specified the color values in hexadecimal.


NSSplitView Control for Xojo

For next release we add the NSSplitViewControlMBS to our Xojo plugins with the attached NSSplitViewMBS class.


Omegabundle price change coming

This year the vendors for OmegaBundle got a different idea on how to do the bundle. Instead of running a bundle for $399 USD for two months including 2 extension weeks, we switch to a different way of running the bundle:
  • 2 months in July and August we offer the bundle for $399 USD.
  • An extension in early September for about 10 days with a $499 USD price tag.
We tell you the price hike in advance to encourage everyone to make the purchase before September for the lower price. When the price goes up, the bundle is basically over. Only if you are very desperate to get the products in the bundle for that price, you make a purchase in September.

Check out what is inside OmegaBundle: Featured Products

MBS Xojo Plugins, version 23.4pr5

New in this prerelease of the 23.4 plugins:
  • Added NSSplitViewMBS class.
  • Added NSSplitViewControlMBS control.
  • Added clipsToBounds property to NSViewMBS class.
  • Updated SQLite to version 3.43.0.
  • Added RemoveAll method to CURLSMultiMBS class.
  • Added ListenForBatteryCapacityChanged, ListenForLidSwitchStateChanged, ListenForPowerSourceChanged and ListenForSuspendResumeNotification methods to WindowsPowerStateMBS class.
  • Added BatteryCapacityChanged, LidSwitchStateChanged and PowerSourceChanged events to WindowsPowerStateMBS class.
Download: or from DropBox.
Or ask us to be added to our shared DropBox folder.

Xojo Meeting in Atlanta

I am coming to Atlanta in early October and I may organize a casual get-together with Xojo developers.

Something like a meet-up for dinner in a restaurant to talk about Xojo.

But I’d be welcome to ideas.

I made a survey with doodle to find a date: Survey to find a date

We previously had several meetings in Atlanta as well as a Xojo conference in 2011 (See report in XDevMag 9.4).

Xojo Sale - Save 25% on licenses and extras!

Xojo Inc. announced a sale for the next few days:

All Xojo new licenses and renewals, along with upgrades and third party extras are on sale through 11:59PM CT Thursday, August 24th.

Buy now!

Keeping your license current gives you access to what’s coming and also gives you immediate access to all of the exciting new features and improvements we had added lately, like:

  • Android (Beta)
  • Dark Mode for web apps and Linux
  • DesktopXAMLContainer
  • PDFViewer control for iOS
  • Chart Control for Desktop and iOS
  • Debugger Variable Filter
  • Code Editor Duplicate Line and Swap Line
  • Build apps for Linux ARM64
  • WYSIWYG display of WebListBox in Layout Editor
  • Project load times are significantly shorter for large projects
  • Build apps for Windows ARM
  • PDF Encryption
  • iOS on-device debugging
  • … and much more

MBS Xojo Plugins, version 23.4pr4

New in this prerelease of the 23.4 plugins:
  • Fixed typo in names for EDSModule.kEdsTonigEffect* constants, now kEdsToningEffect*.
  • Added ProcessRelativeURL method to CURLSMBS class.
  • Added BugreporterKit to examples for 23.4 release.
Download: or from DropBox.
Or ask us to be added to our shared DropBox folder.

ChartDirector 7.1 released

Advanced Software Engineering Ltd announced their version 7.1 of ChartDirector for C++. This update adds support for the Qt Quick/QML framework, which is not of interest for Xojo developers. But we got a couple of bug fixes:

  • ChartDirector crashed if a MultiPagePDF object is with no page at all.
  • Candlestick were not drawn correctly in SVG if the open and close prices are the same. (This only affects SVG output.)
  • ContourLayer image map was incorrect if swapXY was used.
  • If a ContourLayer or SurfaceChart included tooltips and they are put inside a MultiChart, the code did crash when attempting to display the tooltip.
  • Could not load certain JPEG images.
  • The BaseChart.setOutputOptions in C++ may not handle the last option correctly if the option list is not terminated by a semi-colon. This is in conflict with the documentation that mentions the list of options should be delimited by semi-colons and the last semi-colon is optional.
  • In lowess curve fitting, if there was a large number of data points with a very small smoothing factor, the points at the boundaries (the first and last few points) may not have fit very well in some cases. This is not noticeable by looking at the entire curve, but is noticeable when zoom into the first and last few points by using a high zoom factor.
  • In a SurfaceChart, if surface projection was used and the interpolation for the x and y direction were different, the code may crash.
  • In macOS, if ChartDirector needed to resize an externally provided image (eg. an icon to be used on the chart), in some cases the resized icon may have contained "noise".
  • On a chart, if there were both continuous image map (the image map for contour and surface charts with differ pixel by pixel) and regular image maps (the image maps for all other objects) and they overlap, the imageMapHandler may have handled the z-order of these maps incorrectly.
  • Discrete Heat Map parameter substitution was not correct for the zIndex and extra field (which are indexed by the zIndex) if the x and y arrays are provided.

All customers with a current license for our MBS Xojo ChartDirector Plugin with expiration date in September 2023 or later will get this update with the 23.4 release and enjoy the bug fixes. You can get a license included with OmegaBundle 2023.

Tip of the day: Where are we in the code?

For logging bugs it may be useful to know where you are. For example you may want to log a problem and include where you are in the code.

You can query the window or control class names with Introspection. With me you refer to the control or with self you refer to current window. The Xojo language adds a CurrentMethodName constant to each method.

EventHandler Sub Pressed() // query which window we are inside: System.DebugLog "Window Class Name: "+Introspection.GetType(Self).name System.DebugLog "Window Title: "+Self.Title // which control we are inside: System.DebugLog "Control Class Name: "+Introspection.GetType(Me).name System.DebugLog "Control Name: " // current method as constant System.DebugLog "Current Method Name: "+CurrentMethodName // and use exception to get caller System.DebugLog "Caller Name: "+GetCallerName End EventHandler

MBS Xojo Developer Conference: Speaker wanted

Outside picture of the hotel showing the front door and lift.

We look for speakers interested to present at the MBS Xojo Conference, 24th to 26th April 2024 in Andernach, Germany.

If we can have you as a speaker for a full session, 45 minutes talk and 15 minutes for questions, we honor your work with a free ticket.

We look for topics like these:

  • Desktop app development
  • Web development
  • iOS development
  • Android development
  • Database access
  • Threads, workers, shell class to run things in background
  • The various ways to work with PDF.
  • Encryption best practices
  • App Stores
  • Performance optimization
  • Tips & tricks for Xojo

Feel free to submit your topic to us. There may be other topics possible, that are not on the list above. Please sign up for the conference to reserve your spot.
If your topic is chosen to go on the schedule, we will offer you a refund if you paid already for a ticket.

Please contact us if you like to become a presenter.

Please do not hesitate to send us questions.

MBS Xojo Plugins, version 23.4pr3

New in this prerelease of the 23.4 plugins: Download: or from DropBox.
Or ask us to be added to our shared DropBox folder.

Two weeks left for Omegabundle 2023

Just two weeks left to get the OmegaBundle 2023 for the $399 USD price.

OmegaBundle 2023 with some MBS products

This year, we run the bundle a bit different, so please don't wait for an extension, but place your order before end of August 2023 to get the best price at $399 USD.

Omegabundle for Xojo 2023 is a collection of the most useful tool sets, add-ons, digital books and components for use with Xojo Inc's Xojo development environment. If purchased separately and not including any additional offers, the total cost would be over $4166.94. Omegabundle for Xojo 2023 costs $399.99.

Xojo is an award-winning, cross-platform development tool for the Desktop (macOS, Windows, Linux), Web, iOS (iPad/iPhone) and Raspberry Pi. With Xojo, you can create native applications by using drag-and-drop to build your user interface and then one straight-forward programming language to enable the functionality. Xojo is powerful and modern, yet easy to use and learn.

Learn more at , see what is included and order here.

DynaPDF WriteFText last line handling

We recently had a client writing a nice application outputting PDF with our MBS Xojo DynaPDF Plugin. You can use the WriteFText function (or WriteStyledText) to layout text over multiple boxes on multiple pages to do layouts like a newspaper or a magazine. You can continue on a different page (next one, previous one, jump 10 pages forward) and leave room to place images.

Today we have the little trick to avoid having a last line in a paragraph on the next page like in the picture above. As you see we drew a rectangle to show the area we use for WriteFText to draw the text. Since our text doesn't fit, the PageBreak event gets called and we start a new page to continue drawing there.


MBS Xojo Plugins, version 23.4pr2

New in this prerelease of the 23.4 plugins:
  • Rebuild MongoDB-c library with tracing support.
  • Enabled MidiClientMBS and related classes for iOS.
  • Added blocking parameter for Connect method in WindowsBlueToothSocketMBS class.
  • Added SetVirtualHostNameToFolderMapping and ClearVirtualHostNameToFolderMapping methods to WebView2ControlMBS control.
  • Fixed crash in XMLDocumentMBS constructor when passing folderitem pointing to a folder.
  • Switched MongoDB on macOS and iOS to use OpenSSL for SSL.
  • Added SSLLibrary function to MongoClientMBS class.
Download: or from DropBox.
Or ask us to be added to our shared DropBox folder.

Create PDF with unicode text in Xojo

If you make international applications, you have a need to write PDF documents with unicode characters. Use our MBS Xojo DynaPDF Plugin to create PDFs with full unicode support. The Starter edition is enough to write such a PDF and can be purchased stand alone or as part of OmegaBundle.

As you see we picked some example text with non-latin characters like Chinese and Japanese, Cyrillic characters with Ukrainian, Greek letters and some accented characters with Czech.

If you use a font with unicode characters like Arial Unicode MS with 50377 characters supported. But for most texts you just use built-in fonts in PDF like Helvetica, Courier or Times.


MBS Xojo Plugins, version 23.4pr1

New in this prerelease of the 23.4 plugins: Download: or from DropBox.
Or ask us to be added to our shared DropBox folder.
The biggest plugin in space...


Apr 2024
Mar 2024
Feb 2024
Jan 2024
Dec 2023
Nov 2023
Oct 2023
Sep 2023
Aug 2023
Jul 2023
Jun 2023
May 2023
Apr 2023
Mar 2023
Feb 2023
Jan 2023
Dec 2022
Nov 2022
Oct 2022
Sep 2022
Aug 2022
Jul 2022
Jun 2022
May 2022
Apr 2022
Mar 2022
Feb 2022
Jan 2022
Dec 2021
Nov 2021
Oct 2021
Sep 2021
Aug 2021
Jul 2021
Jun 2021
May 2021
Apr 2021
Mar 2021
Feb 2021
Jan 2021
Dec 2020
Nov 2020
Oct 2020
Sep 2020
Aug 2020
Jul 2020
Jun 2020
May 2020
Apr 2020
Mar 2020
Feb 2020
Jan 2020
Dec 2019
Nov 2019
Oct 2019
Sep 2019
Aug 2019
Jul 2019
Jun 2019
May 2019
Apr 2019
Mar 2019
Feb 2019
Jan 2019
Dec 2018
Nov 2018
Oct 2018
Sep 2018
Aug 2018
Jul 2018
Jun 2018
May 2018
Apr 2018
Mar 2018
Feb 2018
Jan 2018
Dec 2017
Nov 2017
Oct 2017
Sep 2017
Aug 2017
Jul 2017
Jun 2017
May 2017
Apr 2017
Mar 2017
Feb 2017
Jan 2017
Dec 2016
Nov 2016
Oct 2016
Sep 2016
Aug 2016
Jul 2016
Jun 2016
May 2016
Apr 2016
Mar 2016
Feb 2016
Jan 2016
Dec 2015
Nov 2015
Oct 2015
Sep 2015
Aug 2015
Jul 2015
Jun 2015
May 2015
Apr 2015
Mar 2015
Feb 2015
Jan 2015
Dec 2014
Nov 2014
Oct 2014
Sep 2014
Aug 2014
Jul 2014
Jun 2014
May 2014
Apr 2014
Mar 2014
Feb 2014
Jan 2014
Dec 2013
Nov 2013
Oct 2013
Sep 2013
Aug 2013
Jul 2013
Jun 2013
May 2013
Apr 2013
Mar 2013
Feb 2013
Jan 2013
Dec 2012
Nov 2012
Oct 2012
Sep 2012
Aug 2012
Jul 2012
Jun 2012
May 2012
Apr 2012
Mar 2012
Feb 2012
Jan 2012
Dec 2011
Nov 2011
Oct 2011
Sep 2011
Aug 2011
Jul 2011
Jun 2011
May 2011
Apr 2011
Mar 2011
Feb 2011
Jan 2011
Dec 2010
Nov 2010
Oct 2010
Sep 2010
Aug 2010
Jul 2010
Jun 2010
May 2010
Apr 2010
Mar 2010
Feb 2010
Jan 2010
Dec 2009
Nov 2009
Oct 2009
Sep 2009
Aug 2009
Jul 2009
Apr 2009
Mar 2009
Feb 2009
Dec 2008
Nov 2008
Oct 2008
Aug 2008
May 2008
Apr 2008
Mar 2008
Feb 2008