Three days till year's end


The year 2015 will end in around three weeks. Do you need some more licenses?
  • Last chance to update licenses purchased in 2013.
  • You can order licenses for 2016 or later and have delivery plus payment done in 2015.
  • And of course you can order updates for several years in advance for all your MBS products.
  • As all licenses are per developer, you should check if you got a new developer in your team this year and adjust licenses to match team size.
  • If you need a Xojo license (new or update), we can always check whether a bundle of Xojo offers an advantage for you.
  • For FileMaker please check if you have enough license for the number of seats or servers you have in use.
Especially if you run on a budget and you want to spend some money in 2015, you can buy updates for several years in advance.

Dropping PPC, OS X 10.4 and/or rbx plugins?


For the new year, I thought about whether I could drop something for Real Studio.
The downloads for Real Studio are down to about 10% compared to Xojo plugin downloads.

The users with Real Studio version capable of building PPC apps may be down to less than 1%, so I wonder if I still should spend time building PPC and Universal libraries.

When PPC support is no longer needed, it may be worth to move the minimum target for OS X from 10.4 to 10.6. For 64-bit, we already use 10.7 as target and for Cocoa 10.5. Using 10.6 for all of those could simplify coding.

Finally if downloads for Real Studio go down further, the rbx plugin format is at question. I considered already to write a converter to convert Xojo plugins to rbx plugins, so users in need of those plugins could do conversion themselves. I would no longer need to upload those plugins.

What do you guys think about such changes?


PS: If you still use Real Studio, please use latest 15.4 plugins. They still work with REALbasic 2006r4 and newer!

MBS Xojo / Real Studio Plugins, version 15.5pr4


New in this prerelease of the 15.5 plugins:
  • Fixed a bug in CGPictureContextMBS class.
  • Added uuDecodeMBS and uuEncodeMBS functions.
  • Added NSAttributedStringMBS.GeneratePDF function.
  • Fixed problem with JSONMBS.SuffixObject method.
  • Updated SQLAPI++ 4.1.7.
  • Updated DynaPDF to version 3.0.46.140.
  • Added CipherMBS.Padding property.
  • Fixed an issue with registration plugin part and web app.
Download: macsw.de/plugin/Prerelease . Or ask us to be added to our shared Dropbox folder.

MBS FileMaker Plugin, version 5.5pr4


New in this prerelease of the 5.5 plugins:
  • Added new parameters for DynaPDF.ReplacePattern: TextScaling and TextRise.
  • Changed calculation formatting to not format very long texts. New limit is 30000 characters.
  • Updated SQLAPI++ 4.1.7.
  • Updated DynaPDF to version 3.0.46.140.
  • Added example for Solution Registration via elliptic curve signature.
  • Fixed bug in ECKey.Verify.
  • Added new optional ScriptParameter parameter to MenuItem.SetScriptAction and Menu.SetScriptAction.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

More Drag & Drop on Windows


Did you see our recent improvements to WinDataObjectMBS class?

It is great for receiving drags on Windows. Especially we got a case with Microsoft Outlook here. When you drag and email and/or attachments to your Xojo app, you do not get all data normally. But with using our classes, you can get more details.
For a normal Explorer file drag, the GetPaths function will give you folder items. But with Outlook attachments, there are not paths. But GetFileDescriptors gives you metadata for those attachments and GetFileContents function can give you the data. For the actual email, the GetFileName function gives you a path.
The reason for all those different functions is that Microsoft invented over the years newer ways to handle drag & drop, especially for files.
With now three ways to receive files, we are happy to get data into Xojo app from Microsoft Outlook.

Merry Christmas


Frohe Weihnachten und ein gutes neues Jahr!

Merry Christmas & Happy New Year

Joyeux Noël et Bonne Année

Buon Natale e Felice Anno Nuovo


Sebastian, Michael, Monika & Christian Schmitz

FileMaker Magazin - MBS Artikel


For our Germans speaking users:

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 excellente Quelle von Informationen, Anleitungen und Profitips.


MBS Xojo / Real Studio Plugins, version 15.5pr3


New in this prerelease of the 15.5 plugins:
  • Added noteHeightOfRowsWithIndexesChanged method to NSTableViewMBS class.
  • Improved NSTableViewMBS to have more debugger visible properties.
  • Updated DynaPDF to version 3.0.46.139.
  • Added more LDAPMBS properties.
  • Added more WinDataObjectMBS class methods.
  • Fixed bug in HASPHLDMBS.HaspTimeToDateTime function.
  • Deprecated HASPHLMBS and HASP functions. Please move to HASPHLDMBS classes for using HASP Sentinel dongles.
  • Improved SignalMBS class to show better names in crash log.
Download: macsw.de/plugin/Prerelease . Or ask us to be added to our shared Dropbox folder.

MBS FileMaker Plugin, version 5.5pr3


New in this prerelease of the 5.5 plugins:
  • Updated DynaPDF to version 3.0.46.139.
  • Added DynaPDF.AssociateEmbFile, DynaPDF.AttachFile and DynaPDF.AttachContainer functions to embed XML for PDF invoices.
  • Added LDAP functions.
  • Fixed RichText.WriteContainer to use filename parameter correctly.
  • Added Window.ResizeContentView.
  • Changed plugin to use DynaPDF if initialized to render PDF preview images for PDF in container on Windows. This allows FileMaker to show preview on Windows. For Mac we render them using PDFKit.
  • Changed plugin to return JPEG preview for containers with PNG images only in FileMaker 11 and older.
  • Changed plugin to return container values with GIF images always now without JPEG preview. FileMaker doesn't need it.
  • Added FM.DeleteRecord and FM.DeleteRecords functions.
  • Added FM.UpdateRecords functions.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Xojo Meetings in Chicago and Cleveland


As I am going to Cleveland for a conference, I thought about organizing a few Xojo meetings there. So if you are in Cleveland or Chicago area, maybe you want to join me for a dinner event?

So we have two surveys here:

Chicago, Illinois
Cleveland, Ohio

Maybe you want to check the dates and join us in March?
Once we come closer, we can decide on a date. If someone wants to suggest a location, please email me.

PauseOnError is coming to Cleveland!


The PauseOnError Steering Committee, in collaboration with Cleveland-based host firm Adatasol, is pleased to announce the Sixth PauseOnError Conference in Cleveland, OH, Monday, March 14th to Tuesday, March 15th, 2016, at the Metropolitan at the 9 hotel in downtown Cleveland.



Interface. Contribute. Learn. Be a part of your Community.

PauseOnError is a self-organized effort of software developers and consultants who use FileMaker. PauseOnError content is created by the attendees in a low tech and high touch environment, so leave Powerpoint at home and come prepared to share the mic.

Have a topic you'd like to talk about? Visit the wiki page, and add your session to the Schedule. It's just that easy.

Our objective is to provide a valuable and educational forum on which we can all collaborate to grow our community. We took care of most of the details so you an focus your energy on your contributions to the conference. PauseOnError is inexpensive because PauseOnError is a not-for-profit venture. The goal for each event is to cover our expenses and break even, and have some buffer for future events.

We would like to extend an early invitation to you to learn about the event, add your session to the schedule, and purchase tickets for you and your team.

To find out more about PauseOnError Cleveland - Sessions, Tickets, Hotel, and more, visit the conference wiki page!

We will have a MBS Plugin session there about our plugin, features and how the plugin is created and changed development with FileMaker.

Xojo 2015r4


We just got notice about the release of Xojo 2015r4.
This is a minor release fixing over 100 issues in Xojo. The planed features for retina support and high resolution aware applications has been moved to 2016r1 as it is not yet finished. Especially for Windows it seems to be harder than expected. Nevertheless you can already use the image sets in your projects to include assets in several resolutions. Be aware that those may be lost or not editable in older versions of the IDE.

Xojo 2015r4 is primarily a bug fix release. Some notable improvements include:
  • Added CGFloat data type to make it easier to create Declares to iOS and OS X Cocoa frameworks.
  • The Code Editor is now noticeably faster when working with large projects.
  • You can use the TextAlign property to more easily set the alignment for web text controls.
  • Added SecureAuth property to MySQLDatabase to allow connections to pre-4.1.1 authentication protocols.
You can download on the xojo website.

Print to Printer in Xojo on Windows


We do have quite a few printing classes in our MBS Xojo Win plugin for Windows. You can query installed printers, learn about page formats and print jobs, show page setup and print dialogs, modify the device mode and create print jobs.

As we can enumerate printers, we can show them in a popupmenu. User can select one and we modify the printer setup string for a Xojo printerSetup object and than use normal Xojo printing functions to print:

// now we have nice setupstring dim ss as string = ps.SetupString 'MsgBox str(len(ss)) // parse it in device mode, to retain settings there dim d as WindowsDeviceModeMBS = WindowsDeviceModeMBS.FromSetupString(ss) if d = nil then // or start with a blank one d = new WindowsDeviceModeMBS end if // change printer if PopupPrinter.ListIndex >= 0 then dim w as WindowsPrinterInfoMBS = PopupPrinter.RowTag(PopupPrinter.ListIndex) // set device name d.DeviceName = w.PrinterName else MsgBox "No printer selected." Return end if // enable duplex 'd.Fields = BitwiseOr(d.Fields, d.DM_DUPLEX) 'd.Duplex = d.DMDUP_HORIZONTAL // get back as setup string dim da as string = d.SetupString if da = "" then MsgBox "failed to create setup string" Return end if // assign back ps.SetupString = da // and print something dim g as Graphics = OpenPrinter(ps) g.DrawString "Page on "+d.DeviceName, 50, 50
PS: Works in Real Studio, too.

LDAP in FileMaker


We are adding LDAP support for FileMaker with a few functions to query, add, modify and delete values. 

To connect, you call the LDAP.Connect function and pass server IP/domain, SSL and maybe port setting. Next you call LDAP.Bind or LDAP.SimpleBind to pass your authentication data.

Once you are connected correctly, you can call the others functions. In our example we simply call the LDAP.Search function passing a query. For example we can search with Scope=Subtree through all nodes and find entries which have a given name: "(givenName=*)". This finds all people with a name.

Next we walk over all the entries found to list all the attributes and show values.

At this point you can of course redirect keys like FirstName to a matching field and import contact information.

 

Here our example script which does query values and show them in our example database as records: 

 

Delete All Records [No dialog]

#Connect

Set Variable [$r; Value:MBS("LDAP.Connect"; LDAP Query::Server; LDAP Query::SSL; LDAP Query::Port)]

If [MBS("IsError")]

Show Custom Dialog ["LDAP error"; "Failed to connect." & ¶ & $r]

Exit Script []

Else

Set Variable [$ldap; Value:$r]

#Login

Set Variable [$r; Value:MBS("LDAP.Bind"; $ldap; LDAP Query::UserName; LDAP Query::Password; LDAP Query::AuthMethod)]

If [MBS("IsError")]

Show Custom Dialog ["LDAP error"; "Failed to authenticate." & ¶ & $r]

Else

#Search

Set Variable [$r; Value:MBS("LDAP.Search"; $ldap; LDAP Query::Base; LDAP Query::Scope; LDAP Query::Filter; ""; 0; 20; 999)]

#Check results

Set Variable [$EntryCount; Value:MBS("LDAP.SearchResult.Count"; $ldap)]

#Walk over all entries

Set Field [LDAP Query::Entry Count; $EntryCount]

If [$EntryCount > 0]

Set Variable [$EntryIndex; Value:0]

Loop

Set Variable [$EntryName; Value:MBS("LDAP.SearchResult.DistinguishedName"; $ldap; $EntryIndex)]

#Walk over all attributes

Set Variable [$AttributeCount; Value:MBS("LDAP.SearchResult.AttributeCount"; $ldap; $EntryIndex)]

If [$AttributeCount]

Set Variable [$AttributeIndex; Value:0]

Loop

#Check attribute name and value:

Set Variable [$AttributeName; Value:MBS("LDAP.SearchResult.AttributeName"; $ldap; $EntryIndex; $AttributeIndex)]

Set Variable [$AttributeValues; Value:MBS("LDAP.SearchResult.AttributeValues"; $ldap; $EntryIndex; $AttributeIndex; 1)]

#Store in a record:

New Record/Request

Set Field [LDAP Query::Entry; $EntryName]

Set Field [LDAP Query::Attribute; $AttributeName]

Set Field [LDAP Query::Values; $AttributeValues]

Commit Records/Requests [No dialog]

#next attribute

Set Variable [$AttributeIndex; Value:$AttributeIndex + 1]

Exit Loop If [$AttributeIndex = $AttributeCount]

End Loop

End If

#next entry

Set Variable [$EntryIndex; Value:$EntryIndex + 1]

Exit Loop If [$EntryIndex = $EntryCount]

End Loop

End If

End If

#Cleanup

Set Variable [$r; Value:MBS("LDAP.Release"; $ldap)]

End If

 
Please try in the next days with updated 5.5pr3 plugin. We may add more functions over time if developers ask for them, e.g. to import data like pictures from LDAP server.

Thread Names


Today I want to introduce you to SetThreadNameMBS, a newer function you can use in our MBS Xojo and Real Studio Plugins (15.5pr2).

Our plugin calls the SetThreadName function already for all the preemptive threads like for CURL or SQL. In a crash report you see the thread name and you can identify what the thread does. For example we create a project in Xojo and run there two threads. We name the main thread, the first and second test thread. Now we let one thread crash with a NULL pointer easily. In the crash report we can now see which thread is doing what by seeing our names:

Thread 0:: This is my Main Thread Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x96d9c9ce mach_msg_trap + 10
1 libsystem_kernel.dylib 0x96d9ba70 mach_msg + 68
2 com.apple.CoreServices.CarbonCore 0x9a9d7f6a YieldToThread + 429
3 rbframework.dylib 0x001f6791 0x1d4000 + 141201
4 rbframework.dylib 0x001f7388 threadRun + 392
...

Thread 10:
0 libsystem_kernel.dylib 0x96da2e6a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x9963372a _pthread_wqthread + 939
2 libsystem_pthread.dylib 0x99630e0e start_wqthread + 30

Thread 11:: TestThread
0 libsystem_kernel.dylib 0x96d9c9ce mach_msg_trap + 10
1 libsystem_kernel.dylib 0x96d9ba70 mach_msg + 68
2 com.apple.CoreServices.CarbonCore 0x9a9d7f6a YieldToThread + 429
3 rbframework.dylib 0x001f6791 0x1d4000 + 141201
4 rbframework.dylib 0x00277684 0x1d4000 + 669316
5 rbframework.dylib 0x0027135f RuntimeBackgroundTask + 47
6 0x00170c14 MainWindow.MainWindow.Thread1_Run%%oo + 96
7 0x001739ff Delegate.IM_Invoke%%o + 110
8 0x00173a40 AddHandler.Stub.0%% + 51
9 rbframework.dylib 0x001f7450 0x1d4000 + 144464
10 com.apple.CoreServices.CarbonCore 0x9a9d7b88 CooperativeThread + 305
11 libsystem_pthread.dylib 0x99633c25 _pthread_body + 138
12 libsystem_pthread.dylib 0x99633b9b _pthread_start + 162
13 libsystem_pthread.dylib 0x99630e32 thread_start + 34

Thread 12 Crashed:: CrashingTestThread
0 0x00170d11 MainWindow.MainWindow.Thread2_Run%%oo + 117
1 0x001739ff Delegate.IM_Invoke%%o + 110
2 0x00173a40 AddHandler.Stub.0%% + 51
3 rbframework.dylib 0x001f7450 0x1d4000 + 144464
4 com.apple.CoreServices.CarbonCore 0x9a9d7b88 CooperativeThread + 305
5 libsystem_pthread.dylib 0x99633c25 _pthread_body + 138
6 libsystem_pthread.dylib 0x99633b9b _pthread_start + 162
7 libsystem_pthread.dylib 0x99630e32 thread_start + 34

The thread with number 10 is created by OS X and has no name. Out threads with indexes 0, 11 and 12 have names.
This does help debugging, because we often have several things running and just one instance crashes. The thread name allows us to pass a text value to the crash report. This can be the ID of a transaction, the name of the PDF we process or the file we upload. We may have ten threads with same code run in different instances, but the thread name in the crash report may give us the clue we need to find the problem.

Should work fine on OS X, Windows and Linux. Please try it.

FileMaker Testing on Windows


Recently reinstalled a virtual machine with FileMaker versions to test:

Good news is that those all work on Windows 10 and allows me to check if my plugin works.
Especially if you have a problem with an older version, I can try myself here. Although I know that over 90% of my plugin users do use FileMaker 13 or 14, so bug reports for versions before 11 are rare.
But by using special code which is not in the official FileMaker SDK, I can keep my plugin load in older versions and still use newer SDK features if available.

PS: Still waiting for first bug report for FileMaker 15...

DNS Lookups in FileMaker


Sometimes you may have a reason to figure our the IP for a domain name or vice versa the name for an IP. Lookup up the name for an IP often helps to identify the IP address because the hostname you get may include the domain of the provider or company.

To do a lookup, you can use the two functions DNSLookup.LookupHostByAddress or DNSLookup.LookupHostByName. First one takes the IP, second the domain name. Both start a lookup and give back a reference number. Why? Because we get back a domain name, several IPs and several alias addresses.

So you can query the name of the record you got via DNSLookup.Name, the addresses with DNSLookup.AddressCount and DNSLookup.Address, the alias names with DNSLookup.AliasCount and DNSLookup.Alias and later release the whole data set with DNSLookup.Release function. For example lookup up apple.com from my office gives three IPs: 17.172.224.47, 17.142.160.59 and 17.178.96.59. But looking up www.apple.com gives just one 104.87.225.193. The record name is e6858.dscc.akamaiedge.net so Apple actually uses Akamai here for content distribution. The IP also has aliases listed as www.apple.com, www.apple.com.edgekey.net and www.apple.com.edgekey.net.globalredir.akadns.net.

We hope you find those IP lookup functions helpful and use them someday.

TextInputCanvas for 64-bit


As you may know there is an open source project called TextInputCanvas.

Recently I did a 64-bit port for a client.

You can load a copy on my plugin download page.

Updated source code is available for Xojo Inc. to update the official plugin soon. My plugin is build with my plugin build system, so it has MBS in the name and includes libraries for Mac, Windows and Linux including ARM, so you can use it in all projects. If you find a bug related to my 64-bit port, please tell me.

MBS Xojo / Real Studio Plugins, version 15.5pr2


New in this prerelease of the 15.5 plugins:
  • Added SetThreadNameMBS method.
  • Fixed problem in pr1 with Registration for Windows.
  • Updated SetApplicationDockTileImageMBS, RestoreApplicationDockTileImageMBS and OverlayApplicationDockTileImageMBS methods in Application class to work in 64-bit.
Download: macsw.de/plugin/Prerelease . Or ask us to be added to our shared Dropbox folder.

Atlanta Xojo Users Group - Mon, Dec 14, 2015


The Xojo developers in Atlanta area meeting next monday:

Hello Xojo enthusiasts!

Please join us for this Xojo monthly meeting! We promise that you'll learn something new at each meeting!

Who: Everyone interested in developing in Xojo!
What: Monthly Meeting
Where: Las Palmas Mexian Restaurant, 2210 Holly Springs Pkwy, Holly Springs, GA :: 770-720-0062
When: Monday, December 14th, 2015 - 6pm to 9pm
Topic:
What a huge year for Xojo and Xojo developers. At this meeting we'll look back at the news highlights of the previous year. We'll also be looking into our crystal ball to speculate on what will occur in 2016.

We've got the latest Xojo news, reviews and announcements.

I hope to see you there!

Have a great time! (MBS will not be present)

MBS FileMaker Plugin, version 5.5pr1


New in this prerelease of the 5.5 plugins:
  • Changed calculation formatting to not format very long texts. New limit is 5000 characters.
  • Added new function DynaPDF.ExtractText to extract text of whole document.
  • Changed a lot of .Release functions to accept a list of reference numbers, e.g. PDFKit.Release
  • For PDFKit.Combine and PDFKit.CombineRef the PDFs parameters can also be lists of paths or reference numbers.
  • Updated openssl to 1.0.2e.
  • Added FM.UpdateRecord and FM.InsertOrUpdateRecord functions.
  • Improved error message when loading a library file fails.
  • Updated DynaPDF to version 3.0.46.137.
  • Added more path functions.
  • Added Content option for DynaPDF.GetEmbeddedFile function.
  • Added more FSEvents functions.
  • Fixed FM.RunDataDesignReport to work better if save dialog is slow to list files.
  • Added DNSLookup functions.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

MBS Xojo / Real Studio Plugins, version 15.5pr1


New in this prerelease of the 15.5 plugins:
  • Added CGColorSpace additions for OS X 10.11.2
  • Updated our CoreImage Filters to OS X 10.11 El Capitan.
  • Added more CoreImage classes and functions. e.g. for QRCode recognition.
  • Fixed an issue with DynaPDF tables and haveMore returning true in where it should have returned false.
  • Updated openssl to 1.0.2e.
  • Fixed constructors taking handle for NSMenuItemMBS and NSMenuMBS to work.
  • Fixed CallMethodLaterMBS time parameter. Now more precise.
  • Added NSAppleEventDescriptorMBS.descriptorWithCurrentProcessSerialNumber and NSAppleScriptMBS.executeSubroutine.
  • Updated DynaPDF to version 3.0.46.137.
  • Added more FSEvents functions.
  • Improved LDAPMBS constructors to work cross platform in both flavors.
  • Changed CURLEmailMBS class to check whether you called Constructor when subclassing.
  • Added SQLDatabaseMBS.ConnectMT method.
  • Fixed a problem with escaping names in emails.
Download: macsw.de/plugin/Prerelease . Or ask us to be added to our shared Dropbox folder.

MBS FileMaker Plugin Update Check Script


Today we had the need to write a script to update or install MBS FileMaker Plugin. Often developers put plugin files in containers in a special MBS table in their solution on a server. Now if client opens database, the plugin may need to be installed or updated on the client. So we check a few cases here and made sure script runs well if plugin is not installed.

Check If Update is Needed:

 

# Check what plugin version we have here in the database:

Go to Layout [ “Install Plugin Update if needed” ]

Go to Record/Request/Page [ First ]

 

Set Variable [ $DatabaseVersion ; Value: GetAsNumber(Install Plugin Update if needed::Version Number) ] 

Set Variable [ $InstalledVersion ; Value: GetAsNumber(MBS("VersionAutoUpdate")) ] 

Set Variable [ $InstalledVersionText ; Value: GetAsText(MBS("Version")) ] 

 

If [ GetAsNumber($InstalledVersion) = "?" ] 

# not installed

Show Custom Dialog [ "MBS Plugin is not installed. Can we install version " & Install Plugin Update if needed::Version D…" ] 

If [  Get ( LastMessageChoice ) = 1 ] 

Perform Script [ “Install MBS Plugin” ]

End If

Else If [ $InstalledVersion = $DatabaseVersion ] 

# current version

Show Custom Dialog [ "Already up to date" ] 

Else If [ $InstalledVersion > $DatabaseVersion ] 

# newer version

Show Custom Dialog [ "Already up to date. Installed version " & $InstalledVersionText & " is newer than version " & Inst…" ] 

Else

# found update

Show Custom Dialog [ "Newer Version " & Install Plugin Update if needed::Version Display & " is available. Install now?"… ] 

If [  Get ( LastMessageChoice ) = 1 ] 

Perform Script [ “Install MBS Plugin” ]

End If

End If

 

# go to fields to update them

Go to Field [ Install Plugin Update if needed::MBS Installed ] 

Go to Field [ Install Plugin Update if needed::MBS Installed Version ] 

Go to Field [ Install Plugin Update if needed::MBS Installed Version Number ] 

Commit Records/Requests [ Skip data entry validation ; No dialog ] 

 

 

 

Skript: Install MBS Plugin

 

#  Check Architecture

#  will be ? for older 32-bit FileMaker Pro

Set Variable [ $Arch ; Value: GetAsText( Get (ApplicationArchitecture)) ] 

#  Check Platform

Set Variable [ $Plat ; Value: Get ( SystemPlatform ) ] 

 

If [ $Plat = 1 ] 

#  Mac

Install Plug-In File [ Install Plugin Update if needed::Plugin File Mac ] 

Else If [ $Plat = 3 ] 

#  iOS

Exit Script [] 

Else If [ $Plat = -2 ] 

#  Win

If [ $Arch = "x86_64" ] 

#  Win 64-bit

Install Plug-In File [ Install Plugin Update if needed::Plugin File Win 64bit ] 

Else

#  Win 32-bit

Install Plug-In File [ Install Plugin Update if needed::Plugin File Win 32bit ] 

End If

Else

#  something new or old?

Exit Script [] 

End If

 

Set Variable [ $LastError ; Value: Get(LastError) ] 

If [ $LastError = 0 ] 

If [ MBS("VersionAutoUpdate") = Install Plugin Update if needed::Version Number ] 

Show Custom Dialog [ "Success" ; "Installed MBS Plugin: " & MBS("Version") ] 

Else

Show Custom Dialog [ "Success" ; "Installed MBS Plugin: " & Install Plugin Update if needed::Version Display & ¶ &  "Please restart …" ] 

End If

Else

Show Custom Dialog [ "Failed" ; "Failed to install plugin due to error " & $LastError ] 

End If

 

What do you think? Something missing? The script will be in an example database with next plugin beta version (or email us).


Three weeks till year's end


The year 2015 will end in around three weeks. Do you need some more licenses?
  • You can order licenses for 2016 or later and have delivery plus payment done in 2015.
  • And of course you can order updates for several years in advance for all your MBS products.
  • As all licenses are per developer, you should check if you got a new developer in your team this year and adjust licenses to match team size.
  • If you need a Xojo license (new or update), we can always check whether a bundle of Xojo offers an advantage for you.
  • For FileMaker please check if you have enough license for the number of seats or servers you have in use.
Especially if you run on a budget and you want to spend some money in 2015, you can buy updates for several years in advance.

Early Registration for XDC is Now Open!


Early registration for the 2016 Xojo Developer Conference is now open! XDC will take place in Houston, TX October 5-7, 2016. It features sessions on best practices, special interests and other technical topics, with content for every level of Xojo developer. Educational sessions will cover topics like Xojo iOS, Raspberry Pi, database design, user interface design, debugging techniques, writing secure apps, and much more! Want to know what XDC is like? Watch our highlights video!

Register now!

XDC Pricing:
Early Bird Registration
Now through March 21, 2016: $799

Advanced Registration:
March 22 - August 22, 2016: $899

Late Registration:
August 23 - Conference: $999

XDC will take place at the lovely boutique Hotel Derek in the Galleria area of Houston. It's right in the middle of two airports, giving you plenty of options (and time) to find a great flight! We have negotiated a hotel room rate of $164 a night. Rooms can be reserved here.

If you have any questions about XDC, feel free to email or PM me on the forum.

More information, including the call for speakers, will be coming after the new year.

Birthday of our video page


Eight years ago we started created tutorial videos and today our video page has birthday. Enjoy a video and learn about our plugins.

Over the years we collected more than 60 videos. We hope you enjoy them!

We know we could make more videos. So what wishes do you have?
Please email us or post a comment here.

Archives

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