What's New in REAL Studio 2010 R3?

From Xojo Documentation

Released: July 27, 2010

Major New Items

  • LLVM for RBScript - RBScripts now run up to 17 times faster than in previous releases. Using LLVM for RBScript is the first step towards the adoption of LLVM for building applications in REAL Studio.
  • Cocoa (Beta) - The option to build for Cocoa is now available, but is at the beta stage. There are some new features for Cocoa builds, such as Pushbutton now has a ButtonStyle property that gives access to nine new styles of pushbuttons.
  • Documentation -The REAL Studio documentation is now locally stored and the user can choose between viewing the local version or the online documentation, http://docs.realsoftware.com.
  • Easier Reporting - To make reporting easier, reports can now take a RecordSet directly to report upon.
  • Improved Database Threading - ODBC and REALSQLDatabase queries and updates no longer block the other threads while they are executing. This allows users to make their user interface more responsive.
  • Console Graphics - All of the graphics classes are now supported in Console applications. Also, pictures can now be copied to and from MemoryBlocks using a variety of picture file formats. Since memoryblocks can be transformed into strings, this allows the user to store pictures without having to write them to the disk first.

Important Changes

The NewPicture, NewMemoryBlock and NewAppleEvent functions have been deprecated. We have done this to make the language more self-consistent. Deprecation does NOT mean these functions have been removed in this release but it does mean they will be removed some day. Instead you should use the New keyword and pass values into the objects constructor:

Dim p As New Picture(100, 100, 32)

This also means you will need to use a Try-Catch block to determine if the object was created rather than testing to see if it's nil.

Release Notes

We added 25 new features and have fixed 81 bugs:

Fixed
1930 Dynamic constants respect secondary language in OS X control panel. This case was fixed some time ago under a FogBugz ID. We have reverified that it indeed acting as expected.
3125 [Compiler] Improperly written code no longer throws an assertion in SemBase.cpp, it now raises a syntax error.
3218 Saving a project to VCP format that has external items no longer overwrites the original external item.
3675 Drag and drop text editing now has the text that was moved highlighted after the drag and drop operation.
3682 [Windows] Controls locked on a PagePanel no longer leaves artifacts behind when PagePanel is moved.
5041 [OS X] When you have no project open and select an item in the recent items menu that can't be found it will now be removed properly if you agree to its removal.
5162 [Linux IDE] No longer deletes your project when you save (this could happen in low memory situations like when you build then save).
5326 [Linux IDE] Now properly draws the window decorations correctly on Ubuntu (or any other Linux distribution that uses the Metacity window manager).
5499 When deleting a window from the project list it will properly restore with all controls that were on it originally.
This was not the case before.
5677 Compiler no longer throws a failed assertion in Miner.cpp (this was triggered by project items that shared the same name)
7086 ServerSocket.StopListening no longer clears ActiveConnections.
8925 [Linux] Setting Default for PushButton no longer hides button outline.
9035 [Windows] Autocomplete popup window no longer causes a different window to be activated.
9149 Auto complete in code editor for report elements should now function properly.
9605 [Windows] Exceptions thrown in Console apps can now be caught properly.
9773 Default column headers are now labeled with numbers.
9814 [Mac] Service Applications no longer crash under Snow Leopard (10.6).
10176 A crash that occured when updating via a RecordSet via ODBC to MS SQL Server has been fixed. If you are doing this from Mac OS X, you will need to contact Actual Technologies to get an updated driver from them.
10351 Fixed calculating the mask on Graphics. When miscalculated previously strange colors would appear on screen.
10501 If a user selects an item that is in the trash from the Recent Items menu the IDE will warn the user that this won't work properly.
10686 Lines are not just for headers anymore! The bug that made lines not work anywhere else on a report has been fixed.
11036 Shadowed properties no longer causes Framework failed assertion at runctl.cpp:2109
11161 You can no longer edit the property value for header rows like ID, Appearance and Behavior.
11178 Rect controls are refreshed when the focus changes.
11276 Fonts are now looked up on Family name first. Previously they required Font name + family name.
11411 VCP files now properly share external items like RBP and XML files do.
11419 [Windows] Now correctly imports an ActiveX control's properties (this was a rare case of an ActiveX control not supporting a dual interface and defining properties).
11420 [Windows] Can now handle FolderItem paths that are greater than 260 characters in length.
11445 REAL Studio includes an updated importfor for use with Spotlight.
11610 Val now returns the correct value for large hexadecimal numbers (like &hADDD3000).
11693 [Windows] Calling TCPSocket.Listen now throws an error when the port is already in use.
11698 Projects that import modules with localizable values or have one pasted in properly enable the Export localizable Values menu item
11708 When using SQLSelect via ODBC connected to MS SQL Server, the column type is no longer returned incorrectly for binary columns.
11929 Notes can have spaces in their names.
11952 [Windows] MouseWheel event now fires when horizontally scrolling (this is only supported on Vista and later).
11986 Updates to the graphics class has fixed issues with Canvas objects not drawing.
12022 [Windows] Resizing BevelButtons no longer leaves artifacts around.
12038 ContainerControls AcceptTabs property shows correctly in the property list.
12042 Build dialog draws icons properly masked.
12049 Empty Service and Event Driven Console templates updated to build for Universal Binary.
12071 The IDE on Mac OS X no longer lets you open any file as a REAL Studio file. Windows and Linux behaviour remains unchanged.
12093 Saving a project as XML that has a toolbar with tool items no longer fails.
12106 Listbox: calling EditCell now selects all text as indicated in the documentation.
12140 Listbox headers now draw at correct font size.
12150 PostgreSQL Plug-in: No longer fails when beginning a new transaction after reading/writing large objects.
12188 MySQL Community Plugin: Executing multiple simultaneous SQLSelects in separate threads now queues the SQLSelects properly.
12193 IDE: Auto complete now better completes properties/classes in modules.
12197 Method parameters replaced using search and replace that are in open method editors will not be automatically reverted (which had been the case).
12201 XML files that contained invalid XML, like external items in a VCP project containing SVN markup, could be incorrectly read and would generate a warning about corrupted project files that would not identify the particular item. This bug has been fixed so that a VCP project with such an item will list that file as one that could not be found or not be read properly as it should have been.
12229 PostgreSQL Plugin: writing large objects no longer fails unexpectedly.
12242 Rectangle, Oval and RoundRectangle controls now have a TabIndex property. In the case where you are using these controls as parents of child controls you can now set the TabIndex property and tab into the controls in the order you specified.
12258 [Windows IDE] No longer passes parameters of an ActiveX method that contain optional parameters in reverse order.
12277 Print dialogs that are presented as sheets no longer cause odd behavior in Cocoa.
12280 New projects do not open as dirty any longer.
12297 Pasting text into notes will preserve text as written including leading and trailing spaces.
12314 [Windows] TextField now fires SelChange events when the selection changes.
12352 PostgreSQL Plugin: Queries run simultaneously (on the same connection) in separate threads no longer clobber each other's results.
12367 Indentation level on items in VCP projects now remains consistent.
12377 PostgreSQL Plugin: now retrieves the last result of a multiple execute/select statement in a single SQLSelect statement.
12391 The Linux IDE did not proerly identify the language that the IDE was running in for key requests. It does now.
12398 URL's that include the ~ character are properly highlighted in the code editor.
12401 Windows that do not have tabs use platform appropriate shortcut to close.
12405 PostgreSQL Plugin: now returns the correct error message when failing to connect.
12446 Menu items in Cocoa builds can be used in multiple menus.
12501 Printing a report with multiple copies or a range of pages now works properly on Windows and Linux.
12562 Numerous issues with the local wiki rendering have been resolved so it renders more like the online version.
12579 A constant that is only spaces is properly recognized as a string
12580 Fixed issue where multiline values in search field would draw outside the field.
This corrects the display only and does not alter the value so searches work as expected.
12591 [Mac] A string with UTF16BE encoding no properly displays in TextArea and TextField controls.
12600 Fixed the hotspots for imported mouse CURS resources.
12608 TextInputStream.ReadLine no longer fails reading UTF16BE text.
12626 Windows: pressing Enter on a PushButton that has focus now triggers the Action event again
12647 A bug in how autocomplete functions when switching awy from the IDe then back has been fixed.
12662 THe online wiki Database page now has a separate article and category page
12669 Mouse coordinates in Cocoa plugins are now window local instead of view local.
12685 The REAL SQL Database no longer leaks a folder item when it goes out of scope
12698 Mac Cocoa enabled as an option for dynamic constants
12716 ActiveX controls that use VARIANT_BOOLs now work properly
12749 Local wiki rendering issue for categories containing subcategories has been resolved
12771 Console Apps: Picture data can now be accessed/modified by plug-in developers
12802 Plugins: a method that references a Picture or Graphics type now works in Console apps
New
3744 [Linux] Now uses the native GTK+ printing APIs (requires GTK+ 2.10 or later) instead of requiring libgnomeprintui.
5793 NewMemoryBlock is now deprecated (use the constructor instead).
9945 The contextual menu for a tab now includes "Show in project" which will reveal the item in the project list.
10222 Console: Can now access Picture and Graphics classes.
11234 The REALSQLDatabase no longer blocks other threads when executing a SQLSelect or SQLExecute. The other database classes (MySQL, Oracle, and Postgres) have also been updated. There is a separate release note for each of those. ODBCDatabase will be updated in a future release.
11439 Language Reference (both online and offline versions) contain a global history listing accessible via the History button in the Language Reference window.
11443 The local language reference has been completely reimplemented to use the same source material as the online wiki.
11495 Added EncodeHex and DecodeHex to REALbasic module.

Function EncodeHex( s As String, insertSpaces As Boolean = False ) As String -- use this function to encode the string into hex values with the option of separating each hex value with a space

Function DecodeHex( s As String ) As String -- use this function to decode a hex encoded string. Note: invalid hex values will be discarded
11519 Hitting Cmd-C (ctrl-C etc) will copy the version information from the About Box to the clipboard.
11731 The Lock/Unlock toggle button changes labels appropriately based on context.
11968 Reports can be made external like most other project items.
11989 There is a new "What's new in this release" item in the help menu.
12083 Added a note regarding comparing MD5 hashes from outside sources like PHP to REAL Studio.
12145 In Cocoa builds on PushButton you can now change Button Type property and change the look of the button.
12187 The renewal window now has a link on it that can be ued to get to the REAL Software website "What's New In This Release" page.
If the internet connection is unavailable the link will be hidden
12231 Comment toggling is part of the contextual menu now.
12354 Added support for converting Picture<->Memory
New Picture function:
Picture.GetData( format As String ) As MemoryBlock

New Picture shared methods:
Picture.FromData( data As MemoryBlock ) As Picture
Picture.IsExportFormatSupported( format As String ) As Boolean
Picture.IsImportFormatSupported( format As String ) As Boolean

Valid formats are:
Picture.FormatBMP
Picture.FormatGIF
Picture.FormatJPEG
Picture.FormatPNG
Picture.FormatTIFF
12384 User added templates can override the internal default, desktop and console applications.
They must be RBP formatted projects.

There are three "special" templates (all names are localizable)

1) "Default New Project" - this is the kind of project the IDE will create if you just open the IDE directly without opening a project. You can create a project in the Project Templates directory and it will be used as the default when the IDE starts.

2) "Desktop Application" - this is the template that is used when you create a new desktop application

3) "Console Application" - this is the template that is used when you create a new console application

By creating and saving a project as one of these names in the Project Templates directory you can override the normal ones used by the IDE
12407 A record set can be passed directly to the run method of a report. It's not necessary to create a RecordSetQuery initially.
12408 Added simpler reporting examples.
12424 FolderItem: OpenAsPicture and SaveAsPicture/SaveAsJPEG have been deprecated in favor our two new Picture APIs:

Picture.Open( file As FolderItem ) As Picture
Picture.Save( file As FolderItem, format As Integer )
12545 RBScript now compiles using LLVM and supports different optimization levels. Three new constants have been added to control the optimization level:

RBScript.kOptimizationLevelNone
No optimizations will be performed and the script will be compiled lazily (a JIT).
RBScript.kOptimizationLevelLow
The script will be compiled up front, but few optimizations will be applied.
RBScript.kOptimizationLevelHigh
The script will be compiled up front and all possible optimizations should be ran.

A level can optionally be passed into Compile(), which will default to kOptimizationLevelHigh. Run() does not take a level and defaults to kOptimizationLevelNone unless the script has already been compiled.
12553 NewPicture is now deprecated (use the constructor instead).
12582 Deprecated NewAppleEvent (use AppleEvent constructor instead) and NewAppleEventTarget (use AppleEventTarget.Create instead)
12594 ODBC Plugin: no longer blocks REALbasic threads when calling SQLSelect or SQLExecute
12597 Option+Shift clicking on a method/property/constant etc while editing code will insert the name of that item at the current insertion point.