REAL Software released REALbasic 2009 Release 5.1 this week and fixes a serious SQLite bug introduced in Release 5. This release of REALbasic (the 5.x series) has its usual mix of new features and updates with some of those updates being fairly significant. This version, again, is not the long awaited Cocoa release, but it does have some welcome changes.
Perhaps the biggest change is that the underlying engine for the SQLite database has been updated to version 3.6.20. I highly recommend you test your code carefully before deploying your application as the library was changed significantly. This was the only big change to 5.1.
It is important to note that REAL Software doesn't change the underlying engine from the SQLite organization so if there's a bug in their release, the RB version will also have that bug. If you depend upon SQLite you should probably check to see if there are any SQLite bugs.
REALbasic 2009 R5 has a new icon editor. Instead of having a small preview pane, the window has been redesigned to show off the large icons rather nicely. While it does this fairly well, small icons are heavily distorted in the preview pane as they are blown up from their original size to the large preview. Ideally it wouldn't enlarge the image to anything larger than the original.
A new MouseCursor class has been added to make it easier to add your own cursors into a project. This is a welcome addition! This only works in Windows, Linux and Cocoa and it NOT supported in Carbon apps. Using it in a Carbon application will result in an OutOfMemory Exception.
The Window class has a new Property and Event to indicate dirty status (i.e. you need to save the window) and the R5 release notes are a bit confusing on this part. The new event and property is called ContentsChanged. Now, rather than implementing your own window subclass, you can do this by setting the ContentsChanged property which then fires the ContentsChanged event. On Mac OS X the red close widget at the top left of the window changes to indicate dirty status with a black dot in the center. Since there is no 'standard' way of doing this in Windows, the user is left to implement their own.
Remote Debugging has been improved in R5. It's been a fairly common problem to have an old Debugger Stub on the target platform and the IDE will happily try to connect and use it. This resulted in odd errors and reports that remote debugging was not working. Now, however, if you attempt to use a Debugger Stub that is too old, the IDE will flag you. R5 needs to use Debugger Stub version 1.7 or better.
For Windows users, REALbasic has a couple of new features. The SpecialFolder.UserHome method now returns a different value whether or not the app is run on Windows 7 or an earlier version. Applications can also now take advantage of GDI+ by setting App.UseGDIPlus to true.
If you use StyledText and convert back and forth between RTF it should be significantly faster. The conversion to RTF on Mac OS X now works properly with Microsoft Word by using the proper font names.
Build Automation that was introduced in R4 has been improved. You can now copy entire folders using the CopyFiles build step. A bug from R4 was fixed so now build variables may be used and it should now be possible to move a PostBuild Script from R3 and use it directly in R5 as an ExternalIDEScript.
A new base class has been added called TextEdit and is the base class for TextField and TextArea. Since this is an abstract class, you can't really use it for much now, but a tantalizing hint in the documentation says the the ActiveCell of a Listbox now returns a TextArea rather than JUST a TextField. In fact, the Listbox now has two new types, TypeEditableTextArea and TypeEditableTextField which indicates that at some point in the future we can have multi-line editable listboxes. However, in my testing, the Mac was able to do multiline TextAreas but on Windows it does not.
The IDE has been tweaked a little. You can now show all breakpoints and view them in the Search window.
The picture popup list for picture properties is now sorted so it should be easier to find a project with a lot of images.
A number of examples were fixed in this release. If you find an example that is broken you should report it via the new Feedback application so it can get updated.
The HTMLViewer now has a print method allowing you to print HTMLviewer contents without resorting to declares or plugins.
Some of the major bugs in the R4 Reporting system have been fixed. The report no longer crashes if you have an object in the PageFooter and you can now see the report object in the debugger.
However, I discovered a bug while writing this article related to groups. If you create a group on 'categories' it's not uncommon to put the categories field into the group header and also put it in the group footer right next to a subtotal field. Your resulting output should look like this: My Sub Category $xxx.xx. With this bug the next group's data is put in the group footer. Obviously a bug, but the work around is to make a copy of the group header data in the AfterPrinting event and then use it in the BeforePrinting event in the group footer.
Other bugs and inconsistencies continue to plague reporting. Using anything but pixel measurement will cause the reporting editor to draw objects incorrectly and essentially make the editor unusable. Changing the units also doesn't change the ruler.
If you use Attributes, Release 5 now shows an attributes badge (I think it's a skinny red 'A') where it can show it. The badge is pretty subtle so it's pretty easy to miss but at least there is some indication there it has an attribute.
You no longer get the annoying deprecation warnings for the Line, Oval, Rectangle and RoundRect primitives!
While R5 (and 5.1) have dozens of important bug fixes and welcome new features it is worrisome that 5.1 had to happen in the first place, especially considering that R5 wasn't even close to the end of 90 day release cycle induced by the Rapid Release Model. The reporting tool continues to be problematic with bugs that are easily found which indicates that RS isn't serious about reporting, or at the very least, too pre-occupied with getting Cocoa out that they're not concerned about this new tool.
Cocoa did not make it into this release - again. We can only hope that 2010 brings us the long awaited transition to the only technology that Apple has said will be moving forward.


