Celebrating 60 articles in Xojo Developer Magazine

As an author from the start of the first issue, I've already written myself 60 articles/columns for the Xojo Developer Magazine. The magazine itself is at 99 issues and will probably celebrate next issue as #100.

I made a new website to show you all the 60 articles I made: My XDevMag articles

Want to read the magazine? Ask us via email or comment for a free subscription. We give away three free six month subscriptions. Raffle will happen on Sunday night, so contact us before the deadline to be on the list.

PS: Raffle done. All winners notified.

Video about IMAP Email example

We got a video about our example for receiving emails via IMAP protocol with MBS FileMaker Plugin.

Enjoy the video and see you at the FileMaker DevCon in Orlando!

MBS Plugin Release Schedule

For the last three years we have been quite good to meet the bi-monthly release schedule. Going by two months means, we are usually quicker to turn around releases than Xojo (3 to 4 months in average), FileMaker Pro (once a year) or FileMaker Cloud (1 to 2 times a year). If some change is needed in the plugin to adapt to a new FileMaker or Xojo version, we can react and usually release our plugin update before the end user gets the new version in hands.

For the schedule, years ago, we discovered that the odd months are best. So when the year starts and everyone comes back from holidays, we have a brand new release in mid January. This release increases the major version number. We have a x.0 release and people notice that something changed. Followed by releases over the year till November with last one. The individual releases are usually scheduled around conferences, e.g. the July release is what people get presented at FileMaker DevCon. Doing a release in October would be hard to manage due to conferences. In 2016 for example we visited Xojo Developer Conference, the German FileMaker conference and the Spanish FileMaker Conference. The October was quite full with not much office time left. Odd month numbers work great so far.

The cycle begins after a release. Usually there is a week or two where we can relax and enjoy watching people try the new release. There may be a few bug reports coming in and we may provide updated plugins to just the bug reporters to try. It's also a great time to start on something new for the next release, which may take several weeks to be finished.

The first prerelease usually comes out beginning of the next months (even number). People can enjoy the fixes we made and of course see a few first new features. Over the month we add more and publish a new prerelease about every week. Sometimes there is an update for DynaPDF. With some urgent fixes we may make an extra pr to push it out quickly.

For the release month (odd number), we pick a week for release. Usually trying to avoid a week with vacation, conferences or working on-site for a client. A week before the release we stop adding new features and just fix bugs. We check the new examples whether they work well on all platforms. Usually Sunday we start the checklist for the release to be made on Tuesday. The checklists are long and include a few points like rebuilding all plugins (Mac 32/64, Win 32/64, Linux 32/64 for Intel and Linux 32 for ARM) with proper code signing. We merge new examples with old examples. For Xojo we run our application to test build all examples (See earlier blog post). Than we run Arbed for all examples to create html versions. For FileMaker we run our tool to create the Database Design Reports and than the html for the website. We regenerate the documentation and make sure all new items are included. Next we create PDFs and upload the help files. The release notes file is cleaned up, sorted and links are added for the mentioned items. Monday we pack all the files into zip archives and digitally sign disk images. The upload takes a while as it's over 5 GB per release. Finally we upload new documentation files for Dash application.

On Tuesday we update the website to mention the new release, make blog articles and send emails to the mailing lists, our press list and put it on a few announce websites. Than we wait. A few minutes later some early adapter may have downloaded it, send congratulations or bug reports. And of course some people order updates for their licenses.

On the following Thursday we send a notice to everyone about the new release. The emails are personalized to display whether the license is current and it's a free update or whether a license key is expired and it may be a paid update. This leads to a few sales usually.

Now you know how much work a MBS release is. I suggest you try to approach something similar for your software with either years, half yearly, quarterly or even bi-monthly releases. Two things to note: A lot of customers only purchase if major version number increases, so we do that every year. We do a big portion of our sales with new release going out. But even more with renewal reminders sent on the first day of a month.

Finally all version numbers are arbitrarily chosen. All versions we upload can be used in production and we do that ourself for client projects. The only thing a beta version may have new code (not fully tested) and sometimes include debug messages being logged. But for our pr and final releases, we disable that.

Such die Zahl - Deutsches Xojo Tutorial

Auf 12 Seiten stellt Stefanie Anfängern Xojo einmal vor und programmiert mit ihnen ein erstes kleines Zahlensuchspiel in Xojo.

Suche die Zahl als PDF bzw. Suche die Zahl als EPUB

Xojo selber kann kostenlos geladen werden auf Xojo.com, allerdings ist die IDE seit 2014 nur noch in Englisch zu haben. Wer noch eine Deutschsprachige Umgebung haben möchte, muss eine alte 2013er Xojo Variante laden.

Weitere Deutschsprachige Resources findet man auf der Deutschen Seite in der Xojo Dokumentation. Fragen können Sie auf Deutsch im Deutschen Forumsbereich fragen.

Viel Spaß!

Matrix functions for FileMaker

Did you ever wish you have the possibility to use a 2D array as a data structure in FileMaker? If the answer is yes, we have very good news for you, with the MBS FileMaker Plugin 9.2 your wish come true.

In this blog entry I want to show you some functions for the matrix.

At first you create a matrix and fill it with values. We make a 3 by 3 matrix:

Set Variable [ $matrix ; Value: MBS("Matrix.New";3;3) ]
Set Variable [ $r ; Value: MBS( "Matrix.SetColumn"; $matrix; 0;"15¶07¶92" ) ]
Set Variable [ $r ; Value: MBS( "Matrix.SetColumn"; $matrix; 1;"17¶3¶60" ) ]
Set Variable [ $r ; Value: MBS( "Matrix.SetColumn"; $matrix; 2;"15¶1¶87" ) ]

We fill the matrix by single columns with values but you can fill in a similar way by rows (Matrix.SetRow) or single values by navigate with columns- and row numbers (Matrix.SetValue).
With all this functions you can later change data in the matrix.

You can output the matrix with MBS("Matrix.GetText"; $matrix) but the layout of the output is confusing with more then 1 column, because by default the delimiter is an empty text. You can pass Char(9) for using tab character or maybe better use the Matrix.CSV function. There you can define which part of the matrix should be printed and define your own row and column separators, which make it easier to read the output. Default delimiters are new line and semicolon characters.

You can clone a matrix with Matrix.Clone function:

Set Variable [ $CloneMatrix ; Value: MBS("Matrix.Clone";$Matrix) ]

You may need a copy if you want to modify the matrix, but keep the old state somewhere. The function copy the matrix and returns a new reference number. If you are not sure whether your matrix have the right size for a calculation, you can test it. Here is a code example for testing if the matrix have same amount of rows like amount of columns:

If [ MBS("Matrix.Height";$matrix) = MBS("Matrix.Width"; $Matrix) ]
  Show Custom Dialog [ "The matrix is quadratic"; "The number of rows and columns is the same!" ]
End If

If you want to sum all numbers of the matrix, at first you can sum all single columns and then sum the results.

Set Variable [ $a ; Value: MBS( "Matrix.Sum"; $matrix; 0 ) ]
Set Variable [ $b ; Value: MBS( "Matrix.Sum"; $matrix; 1 ) ]
Set Variable [ $c ; Value: MBS( "Matrix.Sum"; $matrix; 2 ) ]
Set Variable [ $sum ; Value: $a + $b + $c ]

If you want to add some rows or columns, you can do it with the Matrix.AddColumn, Matrix.AddColumns, Matrix.AddRow and Matrix.AddRows functions easily.

I wish you fun with this 2D data structure. If you have questions or need more information about the plugin please don’t hesitant to contact us.
By Stefanie Juchmes

Run fmsadmin from script

On your server you may need to run fmsadmin to query or change a setting from FileMaker Server. You can do that with Shell functions in MBS FileMaker Plugin. Just run fmsadmin.exe with various parameters and read standard / error output. For Windows, please pass the full path of the exe file as there is no cmd.exe running to lookup shell variable PATH to find the applicaiton for you.

Here is a little script to query version and pass the credentials:

Set Variable [ $shell ; Value: MBS( "Shell.New" ) ] 

Set Variable [ $s ; Value: MBS( "Shell.Execute"; $shell; "C:\Program Files\FileMaker\FileMaker Server\Database Server\fmsadmin.exe"; "-v"; "-u"; "admin"; "-p"; "xxx") ] 

If [ MBS("IsError") ] 

Show Custom Dialog [ "Failed to run" ; $s ] 


# Loop while app runs and collect messages

Set Variable [ $s ; Value: MBS( "Shell.Wait"; $shell; 5) ] 

Set Variable [ $result ; Value: MBS( "Shell.ReadOutputText"; $shell; "UTF-8") ] 

Show Custom Dialog [ "Result" ; $result ] 

End If


Set Variable [ $r ; Value: MBS("Shell.Release"; $shell) ] 

For MacOS or Linux, you may need a different path for fmsadmin command line tool.

Five months till European MBS Xojo Conference 2019 in Cologne

Monkeybread Software is pleased to announce the European MBS Xojo Conference in metropolitan Cologne, Germany. We meet in the lovely Dorint Hotel in the center of Cologne. The hotel is in the city center and in walking distance to the main station. Beside our two conference days we have accompanying social programme with our dinner event and optional two training days. For the evenings we have casual get-together in the hotel bar or beer garden.

To give you an update, we have already over 50 attendees signed up from 14 countries:
🇩🇪, 🇬🇧, 🇳🇱, 🇫🇷, 🇨🇭, 🇺🇸, 🇬🇷, 🇸🇮, 🇦🇹, 🇮🇹, 🇺🇦, 🇪🇸, 🇯🇴 & 🇧🇪.

The schedule is nearly complete except some spare room for the case we get another one or two speakers.

Xojo Inc. runs a sale this weekend and the conference tickets are included. Use XDCSale as coupon code for signing up to get 20% on the ticket price.

The schedule:

Oct 23rd: Xojo Training in English
Oct 24th: Conference, first day with dinner event
Oct 25th: Conference, second day
Oct 26th: Xojo Training in German

Registration is open. The early bird offer available till 24th July is just 599 Euro plus VAT. Attending the conference costs regularly 699 Euro plus VAT, including food and beverage in the Dorint Hotel as well as an accompanying social program.

Sessions are to be held in English. Our conference is conceived as a networking event for the Xojo community. The conference is an ideal opportunity for sharing your thoughts and your own development experience with fellow users and developers.

See also conference website, Things to do in Cologne beside our conference and European Xojo Conference FAQ.

Updated Chart Gallery

Today we updated the Chart Gallery for our MBS Xojo ChartDirector Plugin:

Visit Chart Gallery

Try all the metal and 3D effects possible.

Fix for Windows in MBS FileMaker Plugin 9.2.10

In our 9.2 release, the Windows plugin in archive is broken for some users. A little link error related to comctl32.dll caused it to not load.

We rebuilt the plugin and made a new archive with same name. Download here.

The new Windows plugin has version 9.2.10 and is built 25th May 2019.

The Mac, iOS and Linux version should still be 9.2.09 with date 23rd May 2019.

Xojo Sale: 20% off new licenses, upgrades, renewals, third party store & MBS Conference

Xojo Inc. is running a sale on this weekend:

Save 20% on new Xojo licenses, renewals and upgrades through Monday! Visit the Xojo Store for pricing, no coupon required.

Third Party Products
Check out our third party store for great Xojo add-ons, all 20% off this weekend only!

XDC Videos Now Available!
The XDC 2019 videos are now available. Also, we have new pricing for the 2018 videos. Shop now!

MBS Xojo Conference 2019 Passes 20% Off
The MBS Xojo Conference is coming up in October in Cologne, Germany. Join MBS, Xojo CEO Geoff Perlman, other members of the Xojo Team, and 50+ (currently registered) Xojo developers from around the world. Tickets to the conference are 20% off this weekend, buy now with coupon code XDCSale.

XOJO.CONNECT 2020 Registration Now Open
XOJO.CONNECT will be held in Nashville, TN March 25-27, 2020 and registration is now open - passes are currently $200 off! Join us for networking, collaboration and learning - think of it as the forums but in person! Check out our highlights video from the 2019 conference.

As usual: Anyone with a Xojo license expired or expiring later this year can just add another year on the license. No need to wait till it expires. Same for MBS Plugin licenses, which can be extended in the future.

The coupon code XDCSale also gives 20% on the MBS web store for this weekend. If you want to order via invoice or via PayPal directly, we can provide invoices.

Standard discounts for multi year purchases

As you may know FileMaker Inc. offer you discounts for multi year renewals. Currently you get 10% discount on the 2nd year (effective 5% on total purchase) and 20% on the 3rd year (effective 10% on total purchase).

We like to mirror that for MBS Plugin purchases. So if you like to commit to order for up to 5 years, please let us know. We may provide an invoice for you or just give you a special coupon code for the website store. But if there are other sales going on, we may not combine the offers.

PS: This is a great way to lock in the current pricing for future pricing changes.

Sign up for European FileMaker Conferences 2019

Please join 500+ FileMaker developers at the European developer conferences this year:
Conference Name Language Location Date Registration
FileMaker UK Developer Event English London, United Kingdom 14 October Website
FM Conférence French Futuroscope near Poitiers, France 16 - 18 October Website
FileMaker Konferenz German Hamburg, Germany 16 - 19 October Website
FM Summit Dutch Den Bosch, Netherlands 21 - 23 October Website
FileMaker Italian DevCon Italian Bologna, Italy 23 - 25 October Website
FileMaker Devcon Scandinavia English ? ? October Website
FileMaker Spanish DevCon Spanish Madrid, Spain 25 - 26 October


This list will be updated as we get details for the conferences. MBS Plugin training in German on 16th October 2019 in Hamburg.

Xojo meetings for California

Due to WWDC, I'll come for a visit to California in June. As usual I like to meet other developers beside the visited conference and like to organize a few meetings for local Xojo developers.

Event cancelled.

If you are interested in private time for consulting, training or discussion MBS or Xojo topics, we can of course schedule a meeting. Please contact me directly interested.

DynaPDF Manual online

The DynaPDF library has it's own documentation, which you can find included with our plugin: dynapdf_help.pdf.

In order to read it in a browser and for search engines to index it, we put the manual online as a webpage version:


Maybe it helps you?
From time to time we update it with current manual version.

We got links from our plugin documentation to the DynaPDF manual pages for relevant functions.

FileMaker 18 Platform available

FileMaker Inc. released today the version 18 of their FileMaker platform.

MBS Plugin 9.2 is updated to support FileMaker 18 on MacOS, Windows, iOS and the FileMaker Cloud.
Our plugin stays compatible to older FileMaker versions, so you can MBS Plugin with any FileMaker version from the last 10 years!

Older MBS Plugin versions may work with FileMaker 18 Platform, but we can't guarantee that. Some versions may not load, other may show problems. We recommend all users to upgrade to version 9.2.

FileMaker 18 requires plugins to be code signed. We do that for years, so all release versions of MBS Plugins should be properly signed. If you get a warning about an unsigned copy, it may be a modified one, so please delete it!

New for FileMaker 18 is the FM.RunSaveAsXML function in MBS Plugin to automate the export of a database as XML representation. In FileMaker 18 the Get(LastExternalErrorDetail) function has been improved for plugins to give a better clear text message when Install Plug-In File script step fails.

MBS FileMaker Plugin 9.2 - More than 5800 Functions In One Plugin

Nickenich, Germany - (May 21st, 2019) -- MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 9.2 for macOS, iOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin currently available for FileMaker Pro. As the leading database management solution for Windows, macOS, iOS and the web, the FileMaker Pro Integrated Development Environment supports a plugin architecture that can easily extend the feature set of the application. MBS FileMaker Plugin 9.2 has been updated and now includes over 5800 different functions, and the versatile plugin has gained more new functions:

For MacOS Mojave we added new ContinuityCamera functions. Those allow you to start a process where a nearby iOS device is asked to take a picture and return the picture to the Mac. You can use both iPhones and iPads nearby with at least iOS 12. If you have multiple devices, you can show a popup menu to pick one. And you can choose to scan a document, which allows to merge several pictures taken into one PDF document.

If you like our data structure functions, you may enjoy the new Matrix functions. They provide you a 2D array data structure which preserves the data type of the values. You can fill them with SQL in FileMaker and query their content as text if needed.

As you may know we have printer functions for both MacOS and Windows. For MacOS we got a new set of PageSetupDialog functions to script the page setup dialog. You can select options there automatically and even decide to not show the dialog at all. This allows you to set different paper format for print preview or PDF creation.

We added new TextView functions for MacOS, Windows and iOS to create a plugin controlled text field on a layout. This control is independent from FileMaker and doesn't belong to a record or a layout. It features already functions to load and save styled text, RTF and HTML. You can configure it to use the OS provided spell checker.

On MacOS if you press command-R in a text area for entering calculation or custom functions, you can see the ruler and we add more tab steps for you. You can press Command-I to show invisible characters.

For DynaPDF we added a function to convert colors in PDF pages to e.g. gray scales. You can set PDF viewing preferences, e.g. to open a PDF document with showing two pages at a time. DynaPDF.Initialize got updated for iOS to allow use of DynaPDF library or framework.

Our ListDialog functions can show more than one column and show column headers. You can show dialogs for PKCS12 and X509 on MacOS to show details for them.

If you enjoy our MapView functions to use Apple Maps in FileMaker, please check the new functions to calculate directions. You can show routes in the MapView and get them detailed as JSON. You can format and parse distances for the user in localized format.

Our Drag & Drop control can accept RTF and HTML text data and return it to you. Merging Word files can add a page break in-between. Printing with PDFKit has more options to set. GraphicsMagick can return attributes as JSON and Screen.Scale function tells you the scale of a display.

Finally we updated CURL to version 7.64.1, DynaPDF to, SQLite to 3.28.0 and Xcode to 10.2. LibXL is updated to version 3.8.5 for MacOS and for Linux and Windows.

See release notes for a complete list of changes.

MBS Xojo Plugins in version 19.2

Nickenich, Germany - (May 21st, 2019) -- MonkeyBread Software today is pleased to announce MBS Xojo Plugins 19.2 for macOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin collection currently available for Xojo. MBS Xojo Plugins have been updated and now includes over 2400 classes and 64000 documented features, and the versatile plugins have gained more new functions:

For MacOS Mojave we added a new ContinuityCameraMBS class. This allows you to start a process where a nearby iOS device is asked to take a picture and return the picture to the Mac. You can use both iPhones and iPads nearby with at least iOS 12. If you have multiple devices, you can show a popup menu to pick one. And you can choose to scan a document, which allows to merge several pictures taken into one PDF document.

Our DynaPDF Plugin got a new integration for Xojo's graphics class. You can query DynaPDFMBS object to get a graphics object for drawing in the current PDF page. This supports all the usual drawing commands in graphics including picture, text and polygons. You can draw 2D objects with transparency and all the other options. If you use the report engine in Xojo, you can draw your report into a PDF document via our plugin.

Our JSONMBS class got improved to better handle 64-bit numbers and avoid the conversion to double which involves rounding. The new convert method can convert between JSONMBS objects and a representation with Variant, Dictionary and Xojo arrays.

The SQL Plugin got a new cache engine when using AutoCache property. Use it to make a server side cursor local on your machine and scroll forward and backward. The SQLValueReadMBS class got new functions to return or set Int32, Int64 and UInt32 values. Our plugin now tries to keep connections alive and we got new constants for SQLite.

For Windows, you can use TextArea.WinAutoCorrectionMBS to enable auto correction beside spell checking. With WinShowFontPanelMBS method you can show font panel from Windows for the text ara. The window.ActivateWindowMBS method can bring a window to front, even if the current process is not in front. Similar Application.FrontmostMBS works on Windows now.

We added a XMLValidatorMBS class to validate XML against a schema definition. Our Java array classes got upgraded to better query values or create Java arrays based on Xojo arrays. When merging Word documents with WordFileMBS class, you can now add a page break between the pages. We got a new ShellMBS class to run command line tools. With CIContextMBS we can now output to HEIF image format.

Finally we updated CURL to 7.64.1, DynaPDF to, LibXL to version 3.8.5, SQLite to 3.28.0, Xcode to 10.2 and CubeSQL SDK to version 5.7.3.

See release notes for a complete list of changes.

Neues MBS FileMaker Plugin 9.2

21. Mai 2019 - Monkeybread Software veröffentlicht heute das MBS Plugin für FileMaker in Version 9.2, mit inzwischen über 5800 Funktionen eines der größten FileMaker Plugins überhaupt. Hier einige der Neuerungen:

Für MacOS Mojave haben wir neue ContinuityCamera Funktionen, mit denen Sie ein Foto auf einem iOS-Gerät in der Nähe aufnehmen können. Das Bild wird dann auf den Mac übertragen. Sie können sowohl iPhones als auch iPads in der Nähe mit mindestens iOS 12 verwenden. Wenn Sie über mehrere Geräte verfügen, können Sie ein Popup-Menü anzeigen, um ein Gerät auszuwählen. Sie können auch ein Dokument scannen, um mehrere Bilder zu einem PDF-Dokument zusammenzuführen.

Wenn Sie unsere Funktionen für Datenstruktur mögen, schauen Sie sich die neuen Matrix Funktionen einmal an. Sie bieten Ihnen eine 2D-Array-Datenstruktur, die den Datentyp für die Werte beibehält. Sie können sie in FileMaker per SQL füllen und ihren Inhalt bei Bedarf als Text abfragen.

Wie Sie vielleicht wissen, haben wir Druckerfunktionen für MacOS und Windows. Für MacOS haben wir einen neuen Satz von PageSetupDialog Funktionen, um den Dialog zur Seiteneinrichtung zu skripten. Sie können dort automatisch Optionen auswählen und sogar festlegen, dass der Dialog überhaupt nicht angezeigt wird. Auf diese Weise können Sie verschiedene Papierformate für die Druckvorschau oder die PDF-Erstellung festlegen.

Wir haben neue TextView Funktionen für MacOS, Windows und iOS hinzugefügt, um ein Plugin-gesteuertes Textfeld in einem Layout zu erstellen. Dieses Steuerelement ist unabhängig von FileMaker und gehört nicht zu einem Datensatz oder Layout. Es bietet bereits Funktionen zum Laden und Speichern von formatiertem Text, RTF und HTML. Sie können es so konfigurieren, dass die vom Betriebssystem bereitgestellte Rechtschreibprüfung verwendet wird.

Wenn Sie unter MacOS Befehl-R in einem Textbereich drücken, um Berechnungs- oder benutzerdefinierte Funktionen einzugeben, wird das Lineal angezeigt und es werden weitere Tabs eingefügt. Sie können Befehl-I drücken um unsichtbare Zeichen anzuzeigen.

Für DynaPDF haben wir eine Funktion zum Konvertieren von Farben in PDF-Seiten in z.B. Graustufen. Sie können die PDF-Anzeigeeinstellungen festlegen, z.B. um ein PDF Dokument mit zwei Seiten gleichzeitig zu öffnen. DynaPDF.Initialize wurde aktualisiert, damit iOS die DynaPDF-Bibliothek oder das Framework verwenden kann.

Unsere ListDialog Funktionen können mehr als eine Spalte und Spaltenüberschriften anzeigen. Sie können Dialogfelder für PKCS12 und X509 unter MacOS anzeigen, um Details für diese anzuzeigen.

Wenn Sie mit unseren MapView Funktionen Apple Maps in FileMaker verwenden, dann können Sie jetzt Routen planen. Sie können die gefunden Routen im MapView anzeigen und als JSON detailliert abfragen. Entfernungen können Sie formatieren für den Benutzer oder aus Benutzerausgaben auslesen.

Unser Drag & Drop Steuerelement kann RTF- und HTML-Textdaten akzeptieren und an Sie zurückgeben. Beim Zusammenführen von Word-Dateien kann ein Seitenumbruch eingefügt werden. Drucken mit PDFKit hat mehr Optionen zum Einstellen. GraphicsMagick kann Attribute als JSON zurückgeben und die Screen.Scale Funktion den Maßstab einer Anzeige angibt.

Schließlich haben wir CURL auf Version 7.64.1, DynaPDF auf, SQLite auf 3.28.0 und Xcode auf 10.2 aktualisiert. LibXL ist auf Version 3.8.5 für MacOS und für Linux und Windows aktualisiert.

Alle Änderungen in den Release Notes.

Xojo Developer Conference 2020

Xojo Inc. announced their XOJO.CONNECT event for 2020.

It will be held March 25-27, 2020 in Nashville, TN at the Sheraton Music City Hotel. Registration is currently $200 off full price till 15th Sep 2019 ($799 instead of $999). Please sign up early to get the best deal.

Check out our conference highlights video if you want to see what it's like - or ask one of the many attendees from the forum!

Looking for a conference this year? Join the European Xojo Conference 2019 in Cologne, October 24-25th.

Test building of 2000 Xojo projects

The MBS Xojo Plugins come with over 2000 example projects. We want to make sure they all build and have no obvious problems like a syntax error. From time to time something in Xojo changes and the projects need to be adapted. For example last year the graphics property was removed from canvas control, so we had a need to check all projects for whether the graphics property is used somewhere. Sometimes things change in our plugins, like a method got another parameter and examples may need to be updated, too.

While Xojo lacks a command line compiler (Feedback case 3215), there is a IDE Communicator tool available (Documentation here). This tool shows you how to talk to Xojo and pass commands or IDE scripts. The IDE Scrips are scripts to run within the IDE and do various things like changing constants and trigger several builds with different configurations. For example we have for one project a script to build three variants of an application like a Demo, a Standard and a Pro version.

Our Test application gets the folder with all Xojo example projects for the plugin as input. It may take several hours to build them all, so a progress bar is really useful for us. If this runs in a virtual machine in the background, it doesn't even interfere with us using the computer for work.

We load each project by launching Xojo with the project file as document to open. If Xojo is running already, the project loads. We wait a second and then have an AppleScript to send ESC key press to Xojo in case there is a deprecation dialog showing. Next we call IDECommunicator command line tool via Shell class. We run our test script, which is just a text file with some commands for Xojo to do. This includes changing the app name, so all test builds have the same application file name. Next we build the project with BuildApp() function. We print the result in the script, so via shell class we can later read the output. Finally the script closes the script. When the shell finishes, we can write the result in a log file. If the result was success, we can delete the project and otherwise, we need to put it in the list to check later manually. We also check built apps what frameworks are used, so we can show that in the plugin documentation.

With the tests using Xojo 2019r1 we got projects updated to build in the newer Xojo version. We fixed a couple of things like changed syntax, graphics object access and removed Mac Carbon classes in our plugin for the upcoming 19.2 release. Enjoy!

MBS FileMaker Plugin, version 9.2pr8

New in this prerelease of version 9.2 of the MBS FileMaker Plugin:
  • Updated DynaPDF to version
  • Added Calendar.Initialize function.
  • Updated LibXL to version for Linux and Windows.
  • Changed SystemInfo.MACAddress for Windows to look for Ethernet port first, than for Wifi and than for other adapters.
  • Changed SystemInfo.HardDiscSerial for Windows to make sure to ignore removable media.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

MBS Xojo Plugins, version 19.2pr8

New in this prerelease of the 19.1 plugins:
  • Updated DynaPDF to version
  • Moved CoreAnimation plugin part from AVFoundation to MacCG plugin to reduce dependencies.
  • Fixed problem with BigNumberMBS raising RuntimeException instead of BigNumberErrorExceptionMBS.
  • Added XMLValidatorMBS class.
  • Changed SystemInformationMBS.MacAddress for Windows to look for Ethernet port first, than for Wifi and than for other adapters.
  • Changed SystemInformationMBS.HardDiscSerial for Windows to make sure to ignore removable media.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

New XML Validator class for Xojo

For next Xojo plugin version we added a new class to validate XML text. Our XMLValidatorMBS class can take a XML scheme as text to initialize the validator. Then you can either validate a file or XML text in memory. With files, if you set the working directory to the right folder, we can even find references files int he XML or the schema text.

For error and warning messages, we provide them directly via Error and Warning events. We also collect them in an Messages array, which can be useful to check for errors later after validation.

The messages are in XMLValidatorMessageMBS objects, so we can provide the message and metadata like a line number and file name, if possible. Line numbers seem to be correct if you use Unix line endings. For Mac line endings, you get always line 1. So a call to ReplaceLineEndings(XML, endOfLine.Unix) may be useful.

To implement this class, we relay on libxml2 and the validator functions there. As Xojo has built-in XML classes, we have no need to reimplement all of that, but the validation was missing for a client.

FileMaker DevCon ISTANBUL

Cabitas, a FileMaker Business Alliance Partner in Turkey, and Winsoft, the provider of various localized versions of FileMaker, host a FileMaker developer conference in Istanbul. Please join the first devcon in Istanbul to connect and collaborate with other developers, experts, and advocates.

Monkeybread Software is happy to sponsor the event and maybe even present in a future year.
Sign-up on the website: filemakerdevcon.ist

XDC 2019

The Xojo developer conference in Miami was my first Xojo conference in America. I met a lot of interesting new people and saw many well known friends from various European conferences again. Every time the conference feels like a family reunion. You read a lot of the names in the forums and you have the chance to meet the person behind the posts.

After a good breakfast we had the keynote with the Xojo CEO Geoff Perlman. We experienced the newest inventions and get a lookout to future functions like the new platform for Android development and the APIs changes. One thing that I recognize very positive is that you can see the inspector and the library in the shown future version of the Xojo IDE at the same time and can work with it. In my opinion it is very practical for designing a window, without making a lot of clicks while switching between this two areas. (more)

Xojo Developer Magazine 17.3 Issue

The May/June (17.3) issue of xDev Magazine is now available. Here's a quick preview of what's inside:

Numbers Please! Part 2 by Markus Winter
Creating a numbers-only textfield sounds easy, but as Markus demonstrates, it's trickier than it looks. This time he explores various coding methods.

Coding in Paradise by Glen Newbury
If you're reading this, you're most likely a programmer, and in theory you can work anywhere there's a computer and an internet connection. So why not? Glen shows how you can rent a co-work space in an exotic location and work in paradise!

XDC 2019 Keynote by Marc Zeedar
Geoff Perlman's XDC Keynote is like a Xojo "State of the Union" address. This year he updates us on Android, API 2.0, the new Web app framework, and more. Find out what was announced -- just don't expect a timeline.

XDC 2019 by Marc Zeedar
It was a long trip to Miami, but it was a fun location for a conference. This year there were some amazing presentations raising the bar about what can be done with Xojo, from machine learning to creating a new language.

PLUS: Creating custom events, Xojo 2019r1, description field, Resource Folders, Time Management Tips, Best of the Web, and more!

MBS Xojo Plugins, version 19.2pr7

New in this prerelease of the 19.1 plugins:
  • Added scrollWheel and smartMagnifyWithEvent to CanvasGesturesMBS class.
  • Updated DynaPDF to version
  • Changed Character Spacing for graphics with DynaPDFMBS to be closed to Xojo's behavior.
  • Changed WordFileMBS class to not reformat XML unless changed.
  • Updated SQLite to version 3.28.0.
  • Fixed a problem with FSEventsMBS class.
  • Fixed SQLSelect and SQLSelectMT methods in SQLConnectionMBS class to avoid hex encoding for BLOBs.
  • Fixed problem with cached recordsets and BLOB values converted to hex unintended.
  • Changed various controls and custom views to call beginGestureWithEvent, too.
  • Fixed endless loop in ArchiveEntryMBS.fileName getter in some cases.
  • Fixed problem with InsertRecord, DatabaseRecord and PictureColumn. We now treat text data with no encoding as BLOB to pass on picture data.
  • Change PNGReaderMBS to skip unknown blocks in PNG file.
  • Changed CanvasGesturesMBS to call beginGestureWithEvent, even if NSResponder doesn't call it on MacOS 10.11 or newer.
  • Changed DynaPDFMBS.PageGraphics to create new document and page if needed.
  • Tested all examples to build here for 64-bit with Xojo 2019r1. Fixed dozens of examples.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

MBS FileMaker Plugin, version 9.2pr7

New in this prerelease of version 9.2 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

News for European MBS Xojo Conference 2019 in Cologne

A few updates on our European Xojo Conference, 24/25th October in Cologne.
  • We now have over 50 attendees on the list.
  • The number of countries reached 12:
    🇩🇪, 🇬🇧, 🇳🇱, 🇫🇷, 🇨🇭, 🇺🇸, 🇬🇷, 🇸🇮, 🇦🇹, 🇮🇹, 🇺🇦 and 🇪🇸.
  • Dana Brown, Director of Marketing at Xojo Inc. will join our conference and give a session about marketing your own apps.
  • Today we send reminders to previous attendees.
  • We got featured in the Xojo newsletter. Thanks Xojo Inc!
  • The schedule is now nearly complete and arranged. Speakers can still sign-up and then we can move things around a bit.
  • The offer for free-tickets for young developers is well received. The deadline is over, but we just got a query from a student to be added and we may grant an extra ticket there. If you know someone who may not be able to pay the ticket and should get the chance to attend, please let us know!
  • Recently we published two blog articles:
    Things to do in Cologne beside our conference and European Xojo Conference FAQ.

More details and registration on the conference website.

New column names in an Excel document

If you want to export data from your FileMaker solution regularly as Excel document, perhaps you want to change the column headers every time. Maybe because you have a long grown database and the column names do not fit anymore. Maybe you work in an international company and need the column names in different languages. Perhaps you changed the column names manually so far, but now is the time to automate it. In huge databases this can be a very annoying task and waste a lot of time. I want to show you one way to make this automatically for your database with the help of the MBS FileMaker Plugin and LibXL. 

In this example we load the previously exported Excel file, change the column names and save it with the optional saving dialog. 



FileMaker Stammtisch in Wien

Wer hat Interesse an einem FileMaker Entwicklertreffen im Juni in Wien?

Einfach in gemütlicher Runde treffen in einem netten Restaurant und beim Abendessen was über FileMaker reden. Vielleicht habt ihr ja auch Fragen und Probleme, wo ich helfen kann?

Zeit wäre ca. 18 bis 22 Uhr, so dass man auch später kommen oder früher gehen kann. So ungefähr einen Abend im Bereich von 23. bis 28. Juni.
Treffpunkt steht noch nicht fest.

Bei Interesse bitte bei mir melden.

Termin steht fest: 26. Juni 2019

Falls sonst noch Bedarf an Schulung, vor Ort Entwicklung oder FileMaker/Xojo Hilfe besteht, bitte wegen Terminfindung bald melden.

Xojo Stammtisch in Wien

Wer hat Interesse an einem Xojo Entwicklertreffen im Juni in Wien?

Einfach in gemütlicher Runde treffen in einem netten Restaurant und beim Abendessen was über Xojo reden. Vielleicht habt ihr ja auch Fragen und Probleme, wo ich helfen kann?

Zeit wäre ca. 18 bis 22 Uhr, so dass man auch später kommen oder früher gehen kann.

Termin: 25. Juni 2019.

Bei Interesse bitte bei uns melden.

Falls sonst noch Bedarf an Schulung, vor Ort Entwicklung oder FileMaker/Xojo Hilfe besteht, bitte wegen Terminfindung bald melden.

FileMaker Magazin - MBS Artikel

Wir haben die Artikel zum MBS Plugin aus dem FileMaker Magazin gesammelt hier online gestellt: FileMaker Magazin Artikel.

Wir empfehlen allen FileMaker Anwender ein Abo vom Magazin und den Kauf der alten Ausgaben. Das FileMaker Magazin ist eine exzellente Quelle von Informationen, Anleitungen und Profitips.

Create a PDF with PageGraphics and DynaPDF

Here a nice short example on how to draw a PDF with our new PageGraphics property in DynaPDFMBS class:

Dim pdf As New DynapdfMBS // please subclass DynapdfMBS to implement error event Dim f As FolderItem = SpecialFolder.Desktop.Child("DynaPDF Graphics.pdf") 'pdf.SetLicenseKey "Starter" // For this example you can use a Starter, Lite, Pro or Enterprise License // Create new PDF. Use f = nil for in-memory PDF Call pdf.CreateNewPDF(f) // append a new page, so we have an open page Call pdf.Append // get graphics object to draw on the page Dim g As Graphics = pdf.PageGraphics // draw as usual g.DrawString "Hello World", 105, 100 g.DrawRect 100, 80, 100, 100 // close page and file Call pdf.EndPage Call pdf.CloseFile // for in-memory PDF, use GetBuffer here to grab it. 'Dim PDFData As String = pdf.GetBuffer

You can put the actual drawing code into a method with g as graphics parameter and than call it on several places. e.g. call it from Canvas.Paint event to show it in a window, call it with graphics from OpenPrinterDialog to draw in printing context or call it with PageGraphics to draw into a PDF document.

Things to do in Cologne beside our conference

When you come to join the European Xojo Conference in Cologne in October, you may spend some time with sight seeing, so here a few ideas:

Kölner Dom
  • Visit Cologne's cathedral itself.
  • Take the steps up to the towers for a great view inside the structure and over the city
  • Visit the treasure chamber below the Cathedral
Old city
  • Walk though the small streets of the older city center
  • Enjoy a beer in one of the old tiny pubs or small breweries
  • Rathaus, visit the city hall and it's architecture
  • Several older churches show architecture from various centuries: St. Gereon with a spectacular 10 sided dome.
  • Hahnentor, one of the city gates from the city wall
  • Visit the Chocolate Museum
  • Museum Ludwig on the backside of the Cathedral shows modern art
  • Römisch-Germanisches-Museum, shows Roman history
  • Abenteuermuseum Odysseum, a museum for kids to learn about science
  • Wallraf-Richartz-Museum, an art museum from mid ages to modern times
  • Römisches Praetorium, see some Roman ruins in the city center
More in Cologne
  • Go to platform on KölnTriangle to have a great view on the city
  • Kölner Seilbahn, a cable car takes you over the Rhine to the other side. Connects Zoo with Rheinpark.
  • Kölner Zoo. The Zoo is within the city and next to the Flora, you can go there via tram.
  • Flora, the botanic garden
  • Volksgarten, a public park in Cologne
  • Rheinpark, a nice park on the other side of the Rhine
Visit Brühl, 20 km south of Cologne
  • Schlösser Brühl, vist the palaces and parks from 18th century
  • Phantasialand, a theme park with rollercoasters.
Visit Bonn, the former capital of Germany, 35km south of Cologne
  • Haus der Geschichte, museum about German history
  • Beethoven house, the birth place of the famous music composer
  • Drachenburg, a castle south of Bonn
  • Poppelsdorfer Schloss, the former palace which now hosts the botanic garden
Within the city, you can just get a day ticket for the subway & busses and get everywhere. From main station you can get local trains to Bonn and other places around. To go to Bonn, you may take one of the ships cruising the Rhine.

Three months till FileMaker Developer Conference 2019

Just three months left till the FileMaker Developer Conference in Orlando. Please join about 1500 other FileMaker enthusiasts and learn what's new in FileMaker 18 and coming up on the roadmap. As conference sponsors Monkeybread Software got a booth and a vendor session to present the latest features of the MBS Plugin.

Sign up for FileMaker DevCon 2019 before June 7th to save $200 on the ticket. Sign up as group with 3 or more to get a discount on the tickets. Don't forget to add training day and reserve a room as long as rooms are available.

See you in Orlando!

European Xojo Conference FAQ

We got a couple of questions related to the conference which I like to sum up here:

Is the conference in German?

No, it is in English, as most attendees don't speak German.
And everyone can speak English as otherwise reading Xojo's documentation would be hard for you.
For the training, we offer a day with English and one with German as language.

I don't use MBS Plugin, so should I go?

Yes, of course. The conference is hosted by Monkeybread Software. We do one session telling you what's new in the plugins, but otherwise content is similar to sessions at XDC.

Does Xojo Inc. show up?

Yes, Geoff Perlman, the CEO and founder, will come and speak. He will also talk about the technical changes like the progress in Android support or the new web framework.

Dana Brown, Director of Marketing at Xojo Inc. will join our conference and give a session about marketing your own apps.

Some sessions have same title as for XDC sessions?

Yes, some speakers like to use the same session again and update the content. For example they may present a version 1 at XDC in Miami and a version 2 in Cologne.

Why is the conference in Cologne?

First for handling VAT, we prefer to do it in Germany as that minimizes our paper work. Second, for a few years now we cycle through the cities in Germany with more than a million people. After Berlin in the east, Munich in the south, we now are in Cologne in the west part of Germany.

Why in October?

XDC is around April/May and we like to have five to six months distance between conferences. We look for September, October or November to find a date. Usually we ask a couple of hotels for a conference room on a Thursday/Friday with the required capacity of 50 to 100 seats. Other events take place, so we usually get only a few spots available. e.g. for Munich beside Oktoberfest, school holidays, trade shows, we only had to choose between the week in September and one in November. For Cologne we picked a week at the end of October.

Is dinner included?

The dinner for Thursday evening is included. For the other evenings, it may be self paid by attendees. If the finances allow it, we may organize a group dinner and pay it for you.
All the lunches and coffee breaks are included. If you don't get breakfast in your hotel, you may still find a snack and a coffee in the foyer near the conference area.

The Dorint Hotel is expensive, how about an alternative?

For the Dorint, we got a conference rate for 169 Euro/night with a single room and 204 Euro for a double room.
Within walking distance, there are over 20 other hotels. The nearby the Maritim is a 4 star hotel around 100 Euro/night. And the smaller Hotel Monte Christo is just a block away from the Dorint and charges around 70 Euro per night. In the old city of Cologne, you find plenty of small boutique hotels to have a great stay!
And if you stay farer away, you can take a train to the subway station Neumarkt, which is located in front of the Dorint Hotel.

Will there be a 2020 conference in Germany?

Not sure yet. First priority is to make the Cologne conference a success. Then we may decide for a follow up conference in 2020. Please make us happy by attending our conference!

If you have more questions, please don't hesitate to contact us.

MBS FileMaker Plugin, version 9.2pr6

New in this prerelease of version 9.2 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

MBS Xojo Plugins, version 19.2pr6

New in this prerelease of the 19.1 plugins:
  • Added ShellMBS class.
  • Added PageGraphics and PageGraphicsPicture properties to DynaPDFMBS class.
  • Added ClearPageGraphics method to DynaPDFMBS class.
  • Fixed ScreenshotMBS for Linux ARM.
  • Fixed problem with GTK and Linux ARM
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Graphics class for DynaPDF

We are integrating DynaPDF with the Graphics class in Xojo. You can get a graphics object to draw into the current page via normal graphics class methods. The code looks like this:

Dim g as graphics = pdf.PageGraphics

Technically we create a temporary picture with a subclassed graphics class and give you the graphics object from the picture. You can get the temporary picture with PageGraphicsPicture property. All draws go both into the picture and the PDF page:

Dim p as picture = pdf.PageGraphicsPicture

We support normal drawing commands in graphics class and the usual properties. Draw/Fill Oval/Rect/RoundRect/Line/Polygon will just work. DrawString draws text for single and multi line. StringHeight and StringWidth measure text via DynaPDF functions, so the result may be different than in a picture, but you get the right values needed for the PDF output. DrawPicture can draw picture with alpha channel and masks if needed. NextPage method will close current page and make a new one. Or you implement NextPage event to do this yourself. Then you can import existing page as background.

We support vector graphics classes (Object2D) and drawObject command. Most properties should work and this includes transparency and rotation.

As the report engine is built on Object2D, the report engine can output to PDF via our graphics class.

This works in all Xojo versions (And Real Studio), with all DynaPDF editions and come soon with next 19.2 prerelease.

MBS Plugin session at XDC

Welcome to XDC 2019!
Please join my MBS Plugin session 2nd May @ 1pm o'clock.
  • Learn all the features we got since last XDC.
  • Learn what is coming for DynaPDF 5.
  • Learn what great new feature we got in the DynaPDF plugin for you.
  • And learn what class got added to MBS Plugin in the flight to Miami...
See you all this morning at the keynote!


Jun 2024
May 2024
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