Release Notes - REALbasic: 2008r2

575: Rip out the last of the bindings stuff

Refactored the last remnants of bindings functionality within the IDE.  Bindings are no longer displayed to you in the window editor -- instead, there is a nag message alerting you to how many bindings remain.

472: Assigning non-literal for enum value causes failed assertion[hwwpkpmc]

Non-literal enum values no longer throw a failed assertion when compiling.

748: Add an optional parameter to Picture.Mask function

Picture.Mask function now has an optional parameter called create, which by default is true.  If this parameter is true then a mask is automatically created, otherwise the mask is returned, whether or not one already exists.

Function prototype:
Picture.Mask( create As Boolean = True ) As Picture

753: [FR]Retention of hidden and expanded events & IDE dimensions[auchkzjv]

Code editors now remember the state of the Hide Empty Events preference, and are better about restoring state information when loading projects.

600: TypeInfo needs a way to navigate to the superclass

Introspection.TypeInfo has a new property: BaseType as TypeInfo  This allows you to navigate the type hierarchy from child to parent.

601: Introspection.GetType from Datatype

Added a new keyword to the compiler: GetTypeInfo.  This keyword allows you to get an Introspection.TypeInfo object from an object type.  ie)

dim ti as Introspection.TypeInfo = GetTypeInfo( Dictionary )

542: Bring back the old "common file types"

The FileType set editor now allows you to add "common" file types to a type set.

699: Attribute system

"Attributes" is now a reserved keyword for the compiler.

70: [FR]Posibility of create new instances using introspection. TypeInfo[paadnwjv]

New ConstructorInfo class lets you get information about constructors for a datatype. TypeInfo now has a GetConstructors method which returns an array of ConstructorInfo. If the TypeInfo represents a class, this array will contain constructors; otherwise, it will be empty. ConstructorInfo is a subclass of MemberInfo. It has a GetParameters method and a ReturnType property, like MethodInfo. It also has an Invoke method, which accepts an array of Variant parameter values and returns a new, initialized instance of the target class.

457: [FR]Let us have a choice about method declaration autocompletion[jrofhevu]

When editing a method's declaration in the code editor, the method names no longer autocomplete.

834: Linux - PICT Files Added to Project at Design-time are Nil[klfqzqqm]

[Afx] Now properly compiling projects with resources (pictures, movies, etc.) for Linux

12: Debug Plugins Doesn't Work On OS X

Debug Plugins functionality should now work on OS X again.

341: Variants storing arrays don't lock their references properly

Debugger no longer crashing the debug application when viewing a variant that stores an array after stepping out of a method.

345: Ptr assignment and/or reading is seriously broken on Windows[vqeosdsi]

Using Ptr.Single and Ptr.Double with the same offset on both sides of an expression no longer causes spurious crashes and erroneous values.

382: Associate File Types not working[akwrhdgv]

The Associate File Types button in the preferences window now uses the MSI installer package information for re-associating file types. 

Note that this change requires REALbasic to be installed via an installer in order for that feature to function properly (this change will only affect beta testers).

451: Crash when copying a file into a VirtualVolume[ucrzuoad]

Calling VirtualVolume.CopyFileTo and MoveFileTo should no longer crash on the Mac.

440: Constants editor malfunction

The constants editor now displays its helper fields properly when guessing a constant's type for the first time.

484: Several global methods couldn't be loaded via REALLoadGlobalMethod[svphbbpf]

REALLoadFrameworkMethod can now load framework functions that return an array (such as Split).

485: You can add window's to console application's by right-clicking[lmcemkzz]

Can no longer erroneously add a window, menubar, toolbar or container control to a console application.

474: Introspection.PropertyInfo.GetArrayRank fails[geobshkm]

Introspection.TypeInfo.GetArrayRank no longer throws an unhandled exception when interrogating an array item.

480: Removing a structure from an array corrupts

Calling Array.Remove on an array of structures no longer corrupts the array.

605: Deprecations

Deemphasized:
RB3D
SpriteSurface
NotePlayer

Deprecated:
For removal in 2008r3
NewREALDatabaseOldFormat
TabPanel.Facing
DebugDumpObjects
ChasingArrows
LittleArrows
Old-style constructor naming convention (using the Class name instead of Constructor as the method's name).

For removal in 2008r4
ApplicationSupportFolder
DesktopFolder
DocumentsFolder
PreferencesFolder
SystemFolder
TemporaryFolder

838: REALGetClassRef fails in built application

[Afx] REALGetClassRef no longer failed in built executable when called properly from PluginEntry.

814: val doesn't work in RB 2008r2a2[inmobevt]

[Afx] You can use Val and other extension methods from within RBScript again.  Broke in a1.

811: Remote Debugging does not work

[Afx] Remote debugging now functional again.

1179: Arrow keys no longer work in MessageDialogs

[Afx] Can now tab (or arrow) through the PushButtons in MessageDialogs again

872: [Auto] Compiler failed assertion in Expressions.cpp:793

[Afx] Compiler no longer throws a failed assert in Expressions.cpp when GetTypeInfo is called with an illegal parameter value.

813: "Are you sure to Quit the IDE" while debugging does not work as intended[hdfhlyzv]

It is now possible to cancel the quitting of the IDE by choosing "Don't Save" in the "Save Changes?" dialog. This also fixes a related (unreported) issue where unsaved changes in the Database editor would get lost on quit.

816: WeakRefs slow down app significantly[vdlxydws]

Speed has been improved drastically for cases where many WeakRef instances refer to many different objects. If, however, there are many separate WeakRef instances pointing to the same object, speed will not increase.

635: IDE Crash if project file is moved.[csibeypl]

IDE no longer throws a nil object exception if the project file resides on removable media that has been removed.

574: A qualified constant name in a declare statement crashes IDE when compiling[yafezbhz]

Rolled back a change from 2008r1 that allowed local declare libs to be a qualified constant.  This is no longer allowed.

606: Remove deprecated items slated for removal

Removed the following deprecated items:

AppleMenuFolder
ControlPanelsFolder
ExtensionsFolder
StartupItemsFolder
ShutdownItemsFolder
FontsFolder

All of them have a sibling function in the SpecialFolder module which should be used instead.

589: Editfield.Alignment doesn't work at runtime on Windows[ilhiqbov]

EditFields on Windows now honor the alignment when assigning new text via the .Text property.

591: Assertion failure in SocketCore[inbkvubm]

You can no longer instantiate an instance of SocketCore -- it now has a Protected constructor.

592: Fixing up ConstructorInfo stuff

MethodInfo.Invoke's signature has changed.  The base object is still a required parameter, but the array of parameters to pass to the object is now Optional.  This change also affects ConstructorInfo.Invoke.

566: Runtime Error 4: Failed Assertion in Classes.cpp: 688[rolalinp]

No longer throwing failed assertions when compiling properties and constants from a class which does not exist (such as might happen when a plugin isn't loaded properly).

567: rbvcp doesn't store the compatiblity "flags" [benlmkuz]

Version control projects now save and restore compatibiblity flag settings.

568: Using namespace with controls is not restored from VCP format[mocddtcs]

Version control projects can now read in windows containing controls whose super is a namespace (like Module1.CustomPushbutton).

569: IDE crashes if project file is locked[bhiemycd]

IDE no longer throws unhandled NilObjectExceptions when adding new controls to a window while the main project is locked.

570: Embedding a ContainerControl twice asserts[opgwhday]

Embedding a container control that's already been closed no longer throws a failed assertion.  However, as with any control that's been closed, you cannot continue to use it -- so this operation will still fail (just not assert).

541: Failed assertion with duplicate enums[gditndhg]

Duplicate enumeration declarations no longer throw failed assertions.

520: Accessing an element of a nil array crashes application.[jfxqllsz]

Array access now throws a NilObjectException when getting or setting a value, as well as calling one of the array object methods.

543: Pictures allowed in console application

Can no longer import illegal item types into console applications (such as pictures or windows, etc).

546: Delegate viewer cosmetic issue

In the debugger, the listbox columns are now resizeable when viewing the contents of a delegate.

547: Dictionary viewer cosmetic issue

When viewing the contents of a dictionary in the debugger, the columns are now resizeable.  Furthermore, the index column has a more descriptive name.

548: ListBox cosmetic issue in the debugger

When viewing the contents of a listbox in the debugger, the Text vs Tag popup menu is now appropriately sized.  Also, the column text is more descriptive (stating Col 1 instead of just 1, for instance).

549: New Subclass creates without scope when subclassing class defined in a module[sazdxbbs]

The New Subclass and New Implementor contextual menu commands (in the ProjectItem editor) now honor namespace containment.

552: Encodings.SystemDefault.InternetName crashes program[icvntrwx]

Encodings.SystemDefault.InternetName no longer crashes on non-Macintosh systems.

553: IDEScript editor doesn't indent classes, modules, etc[civwepwl]

Code editors (such as the IDE script editor) now indent Class, Module and Interface declarations.

555: adding a folder to a folder via the popup menu doesn't work[lpuucwsy]

In the ProjectItem editor, you can now use the Add To Folder contextual menu to add anything to a folder, not just classes, modules and interfaces.

482: Shared methods in class interfaces[jbhraphn]

Can no longer erroneously add a shared method to a class interface.

427: RB 2007r4/r5[jdukluhz]

The IDE now ensures that all controls on the pasteboard are within a reasonable distance from the window when loading a project.  Furthermore, the pasteboard size is now limited to 4000 pixels (wide and high).

384: Split Function does not split UTF16 characters[cwdssvbf]

Split using an empty string for the separator now handles UTF-16 data properly.

323: Enum types not saved in RBVCP[miokjjuu]

When saving using the RBVCP format, enumerations now save their explicit type information out when appropriate.

334: IDE Script can't set seltext[dcfkhipf]

Can now set code editor text via the IDE scripting functionality again.

Release Notes - REALbasic

127: Crash on Database Access[afakwmrh]

Fixed a crash bug that occurs when the IDE tries to connect to a local REALSQLDatabase data source saved with a previous RB version.

246: Break should be a no-op in compiled applications[ovdlpntq]

The Break global method has been replaced with a compiler statement.  This means that "Break" is now a reserved keyword.  It also means that break statements in built (instead of debug) applications are a noop.

230: Write the Runtime Failure dialogue text to the console[fbquwjpy]

All failed assertions are now written out to the console automatically.

231: XMLDocument.ToString Leaks Memory[rscsmdnm]

XMLDocument.ToString and XMLNode.ToString no longer leak a buffer equal to the size of the result string on each invocation.

237: Encodings Object - Access Available Encodings by Index[dpecvpdg]

The Encodings object now exposes a Count and Item method as a way to iterate over the stock TextEncoding objects.

238: TextEncoding should implement Operator_Compare[dlsvmnzk]

TextEncoding now has an Operator_Compare function which calls through to the TextEncoding.Equals function.  Note that only equality testing is implemented, and relational testing is undefined.

214: Please add a refresh search to search results tab[rgikuvka]

The Search Results tab's toolbar now has a "Refresh" button that will re-perform the original search.

110: When product crashes send a crash report to fogBugz

Compiler failed assertions and unhandled exceptions now allow you to report the bugs immediately to REAL Software automatically.  Also, if the framework has a failed assertion (only while you are debugging your application within the IDE), you can automatically file a report.

247: SMTPSecureSocket not working in secure mode[qrwmbzfj]

SMTPSecureSocket works more reliably when connecting to secure smtp servers.

248: Click into EditField is not good enough, wrong Mouse-Cursor (Vista/XP)[rhqbsbgy]

Clicking an EditField near the border on Windows now sets the focus properly.

242: GetFolderItem incorrectly populates AbsolutePath & Name[eylxqpyb]

GetFolderItem no longer returns an unusable folderitem object when the argument is an absolute path containing long file names or non-ASCII characters.

220: Threads leaking like mad

Threads now clean up their internal data structures when destroyed, which fixes a sizeable memory leak.

251: Runtime Error 4: Failed Assertion[dtvjrecv]

Compiler no longer fails assertions when the right-hand side of an assignment is a non-value type.

255: Failed Assertion due to App Property[tafgjyyv]

The CompanyName, ProductName and InternalName properties of the Application class are now properly limited to 44 characters each.

269: compiler fails to recognise extension methods that extend the PTR datatype [wkyjdhud]

You can now use extension methods with the Ptr datatype.

275: Failed assertion with 8 and 16 bit enums[bovutjjl]

Compiler no longer fails an assertion in CGPPC.cpp when an application uses 8- or 16-bit enum constants.

96: Quitting RealBasic while debugging quits without warning[hvzcpgwh]

Closing an IDE window while debugging an application now asks for verification, since the action causes the debug application to immediately terminate.

8: RealBasic 2007.exe process still running after IDE is closed

When closing the last IDE window (on Windows) and using a floating properties palette, the IDE now terminates properly.

216: Find dialog should report number of changes after clicking the replace all button[uvluansn]

The find dialog now reports the number of changes made
after clicking Replace All.

217: Making App external gives error message[blkvtjew]

A spurious error message no longer occurs when making a project's App object external.

240: Calling StyledText.Font when Text property = "" causes crash.[ylvndtmt]

Getting the properties of an empty StyledText object no longer crashes.

198: RBScript: RunTimeError Event Not called[sbuwicsb]

RBScript's RuntimeError event is now called properly when an unhandled exception has occured.  Note that the line number parameter is undefined, and currently passes in 0, regardless of where the exception occurs.

203: Request for cancel button on "professional features" messagebox[lqlwzdac]

The "professional features" alert box now has a Cancel button.

57: Setting HasBackColor to false has no effect in composite windows[iprzjxft]

Setting HasBackColor to false now works fine on composite windows.

75: RBScript Causes Runtime Error #4 in Console Applications[cblkiarj]

RBScript no longer causes runtime error #4 in console applications.

80: FigureShapes with BorderWidth > 1 do not draw correctly[sdswnodt]

FigureShapes with BorderWidth > 1 are now correctly drew (reportid sdswnodt)

86: MenuItems - Icon-Transparency and chopped text[qarnayhr]

Menu item text is no longer chopped when an icon is assigned

132: Contextual menu takes you astray in control array.[wujkhjnx]

The form editor now takes you to the proper event when selecting the Edit Code contextual menu for a control array.

133: Building app with no name could overwrite important files as unintended side effect[njdjaomp]

Now setting the target name to "Untitled" if no app name is specified

134: Temporary items in Projects dir created w/o inc. compilation turned on[mlhdypju]

When incremental compilation is turned off, the Projects folder is no longer created automatically by the IDE.

135: Permissions on Linux build[rshtsige]

Building a Linux application on the Mac now properly sets the executable permissions without modifying other permissions

138: "Internal Error: Assertion failed" when invoking shortcut to check for errors twice in succession quickly[prtevdhi]

No longer throws a failed assertion when check for errors is invoked twice in succession

140: Internal error on build -- Console Application no longer compiles[hbkdjbuh]

Compiler no longer fails with a nil object exception when compiling projects with certain types of syntax errors (a module named "Global", for example).

146: Focus not moving for pushbuttons that invoke a method[jnzabmno]

Deactivated windows now remembers the last focus control, which will receive the focus when the window re-activates

150: The IDE hangs when you rename a control that has a child control with the same dimensions[uqobcbxy]

The IDE no longer hangs/crashes when a control, that has child controls on it, is renamed

154: autocompletion not able to suggest 'Exit Sub' / 'Exit Function"[mvdiqmay]

Autocomplete will now suggest the optional keywords when using the Exit statement.

155: Constant declaration doesn't support large integers eg 3,123,456,789[scngvuge]

When entering an integer value greater than 2^32 - 1 into a class constant, it is now treated as a 64-bit integer properly.

159: Add ShowURL functionality to RBScript and IDE Scripting[ugqgzykw]

There is now a ShowURL method available to IDE script which behaves the same as the global ShowURL function.

162: Windows IDE Multi-Line Constants for Language Values[rhjxaupz]

Can now input multi-line constants for language values

163: close doesn't trigger autoquit in 2007r1 but did in 2006r4 (MacOSX 10.4.8 ppc)[xwcihktc]

Using Window.Close to close the last window of an application with AutoQuit set to true, will properly quit the application.

181: Can't mouse move a Timer on a TabPanel[qogsxcmj]

Invisible controls are now responsive to mouse clicks immediately after being added to a TabPanel or PagePanel control.

192: Nonsense error message using "extends"[plmgnsvw]

Using the extends keyword on a class method now throws a more sensible error message.

89: Arrays in context generate an error if also declared in script even though context objects are invisible to script[tlyaqxfo]

RBScript now ignores arrays as properties of the context object instead of allowing them to pollute the script's global namespace.

Produced by FogBugz