2018r2

Released on August 7, 2018.

Xojo 2018 Release 2 has over 160 changes and improvements. This release is primarily focused on optimization and fixes.

Notable Xojo 2018 Release 2 changes include:

Bug fixes (121 cases)

Case

Area

Description

52406

Build

Windows/Linux IDE: Building with 64-bit native shared libraries in the Plugins folder now works properly.

5135

Compiler

Analyze will report multiple warnings per line if necessary.

52291

Compiler

Fixed an issue where Unicode characters in the project path could cause a failure when running or building 64-bit Windows apps.

51957

Crashes & Assertions » Crash

Setting the Horizontal or Vertical resolutions of a Picture object before calling its Super.Constructor no longer crashes but instead throws an UnsupportedOperationException.

47238

Crashes & Assertions » Failed Assertion

Cancelling an update no longer causes an exception.

50576

Crashes & Assertions » IDE Unhandled Exception

No longer get a NilObjectException when navigating back and forth using the forward and backward arrows.

51911

Crashes & Assertions » IDE Unhandled Exception

An illegal cast when reading a project ui state file no longer causes the IDE to raise an unhandled exception.

52325

Crashes & Assertions » IDE Unhandled Exception

An NilObjectException that can occur when altering the name of a control to be part of a control set has been fixed.

52661

Crashes & Assertions » IDE Unhandled Exception

A NilObjectException that could occur when caching plugins has been fixed.

51805

Database Plugins

MySQLCommunityServer now maintains its unsigned value when retrieving an unsigned smallest type instead of it being converted to a signed value.

49173

Debugger

Viewing the Runtime->Contents in the debugger (for 64-bit debug apps) no longer crashes debug app.

49634

Framework » All

Rotated PixmapShapes and StringShapes are now positioned correctly (was incorrectly placed at HiDPI and when printing before).

51965

Framework » All

Quitting from a Close event no longer causes the application to crash.

52138

Framework » All

JSONItem.Load no longer raises an OutOfBoundsException for an empty string.

52230

Framework » All

ContainerControl Moved event now fires again.

41061

Framework » Linux

HTMLViewer no longer crashes on Pi.

49844

Framework » Linux

Setting the BackColor and TextColor of a TextField or TextArea control now works.

50326

Framework » Linux

The text in some of the PopupMenu controls in the Options dialog of the IDE in Ubuntu 17.10 is no longer offset.

51981

Framework » Linux

Window bounds now correctly offsets the menu/toolbar from its top/height calculations.

52040

Framework » Linux

If there are more Tabs than available space to display them on a TabPanel, scrollable arrows now appear to get to them.

52041

Framework » Linux

Listbox headers no longer appear transparent.

52113

Framework » Linux

BevelButton no longer ignores the TextSize.

52375

Framework » Linux

Web apps no longer hang at startup on Linux ARM builds.

52538

Framework » Linux

Controls in GroupBox are no longer incorrectly positioned on Pi.

38278

Framework » Macintosh (Cocoa)

Listbox with header and no border no longer leaves drawing artifacts behind.

52453

Framework » Macintosh (Cocoa)

Tooltips that are hidden automatically can now show themselves again.

34720

Framework » Web

WebTextAreas whose text contains line ending characters set in the IDE now sends the correct line ending characters to Internet Explorer.

52368

Framework » Web

WebFileUploader properly resets again when a new instance is created.

52395

Framework » Web

Auto-Reconnect works on Firefox again.

52419

Framework » Web

WebStyle gradient stop points render in the correct order again.

52492

Framework » Web

WebFileUploader no longer fails on IE11.

52514

Framework » Web

Uploading large files using WebFileUploader will no longer fail with an OutOfBoundsException inside the web framework.

42277

Framework » Windows

Console apps that write to StdOut now convert the string to the correct encoding for the console.

45597

Framework » Windows

BevelButton.Caption is no longer partially cut off when CaptionAlignment is Flush Left or Flush Right.

49499

Framework » Windows

WebKit based HTMLViewer now updates the contents immediately when resizing.

51583

Framework » Windows

Now honoring the Serial.RequestToSend property.

51840

Framework » Windows

Hiding/Closing a modal dialog no longer activates the wrong window before presenting the correct one. This bug could be seen in the Windows IDE when closing a property editor dialog while multiple windows were present.

51841

Framework » Windows

Listbox header no longer lags behind content when scrolling or when resizing columns.

51844

Framework » Windows

Xojo.IO.TextOutputStream/BinaryStream can now correctly create and open files that contain unicode characters on Windows.

51847

Framework » Windows

Using Xojo.Net.HTTPSocket to send a file that contains Unicode characters in its file path/name now works.

51867

Framework » Windows

Now using higher quality anti-aliasing when scaling a Picture.

51897

Framework » Windows

Slider controls now update their background correctly when its parent window updates.

52012

Framework » Windows

Sliders placed directly on a TabPanel now correctly matches the TabPanel background color.

52087

Framework » Windows

Rotating an Object2D on a clipped Graphics now correctly rotates on the relative X, Y delta supplied.

52165

Framework » Windows

OpenGLSurface: Calling Render from a Paint event now works again.

52257

Framework » Windows

Listbox focus ring is now drawn thin dotted again instead of dashes.

52266

Framework » Windows

Embedding ContainerControls on a hidden page of a PagePanel no longer causes redraw artifacts to appear.

52279

Framework » Windows

WebKit based HTMLViewer now correctly scales when moving between monitors with different DPI scales.

52289

Framework » Windows

Listbox Drag reorder indicator is no longer offset incorrectly.

52312

Framework » Windows

Improved ContainerControl scrolling.

52331

Framework » Windows

MouseMove, MouseEnter and MouseExit events are now called for MDI child windows.

52402

Framework » Windows

Hierarchical Listbox disclosure icon is no longer painted in wrong row and too small.

52410

Framework » Windows

A debug app with a Webkit based HTMLViewer on a window can now be closed properly when forcibly stopping the debug app.

52470

Framework » Windows

Optimized a case where one would draw a picture to another picture frequently.

52481

Framework » Windows

We now smartly cache drawing pictures to use less memory and to draw a bit faster when drawing to another picture object. This potentially fixes some failed assertions at DrawableD2D.cpp that some people have been reporting.

52748

Framework » Windows

Changing a ToolButton's caption no longer leaks the icon associated with it.

52851

Framework » Windows

TabPanel: Removing a tab or changing the tab caption now correctly updates the empty area along the top-right of the TabPanel so it no longer overlaps the tabs and draws the background properly.

37969

Framework » iOS

A user can manually unparent a control more easily using this process: 1) Select the control, 2) Right click, 3) Select Unparent from the contextual menu. Use caution with this as overlapped unparented control can cause display issues.

51920

Framework » iOS

Setting the Active property on an iOSLayoutConstraint to False in the IDE now works.

52182

Framework » iOS

Xojo.Threading.Thread Priority now defaults to 1, not 0, which resulted in an error. However, this makes NO change to existing instances in existing projects.

52307

Framework » iOS

The iOS Framework now return False instead of True to iOS by default in response to the application didFinishLaunchingWithOptions: event to match Apple's documented behavior.

8788

IDE

MenuHandlers for menu item arrays show the “index as integer” parameters. Note there is a refresh glitch when you remove all menu items from the array. You can collapse the containing row and re-expand it and the item will redraw correctly.

52728

IDE

Extract method assistant does a better job of crafting a suitable name and parameters from the selected text making it easier to edit the name right away. The name no longer includes illegal characters that have to be removed before you can edit the name.

52043

IDE » Auto Complete

Fixed regression where global methods in external modules would not autocomplete.

52044

IDE » Auto Complete

MenuItems autocomplete properly.

52373

IDE » Auto Complete

PagePanel.CreatePane and other internal details removed from autocomplete list.

51927

IDE » AutoLayout

Constraint editor tries really hard to stop you from setting up constraints that are going to cause crashes. For example, you can 't set something's LEFT to something elsg's TOP as that would cause a crash.

35430

IDE » Code Editor

Bare Exception and Catch statements no longer draw extraneous code matching markers.

42366

IDE » Code Editor

Selecting Go to <constant> from the context menu now selects the constant if it is a module.

51279

IDE » Code Editor

A Shift-Return on an ElseIf line that has no Then will add the Then as needed and close the ElseIf with an End If.

51683

IDE » Code Editor

A super-return on a line being reformatted by a user script no longer has the text from the first line inserted at the end of the closing line.

51774

IDE » Code Editor

Clicking on the code folding hot box works properly.

51992

IDE » Code Editor

Indents and folding hit box positions are consistent even when using really small or really large font sizes.

52183

IDE » Code Editor

Code editor contextual Find does partial word searches not just whole word searches.

52372

IDE » Code Editor

Home and End scroll to beginning and ending of line.

51959

IDE » Debugger

Viewing properties of a Picture subclass in its Consturctor no longer crashes debugged app.

51880

IDE » FileIO

Backslash encoded strings in a note no longer cause issues when loading a project.

52053

IDE » FileIO

Subclassed iOS controls reload properly.

52407

IDE » FileIO

The IDE now cleans out existing build folders before a target is built. This happens before any pre-build steps.

52426

IDE » FileIO

Project opening speed is vastly improved for some projects with incredibly long methods.

52573

IDE » FileTypes Editor

Deleting a file type in the File Type Set Editor moves the selection to an appropriate item.

52140

IDE » Find & Replace

Search and replace within parameters no longer mishandles ByRef and Optional keywords.

52262

IDE » Find & Replace

Search followed by a replace no longer alters the found items list or the search scope.

52795

IDE » Find & Replace

Clicking on a breakpoint in the search results, when showing all breakpoints, correctly moves the Navigator focus.

51821

IDE » Inspector

Changing the scope of an external Objective-C method no longer drops the Objective-C setting.

51859

IDE » Inspector

Inspector Size fields changed via paste now retain the correct value.

51861

IDE » Inspector

Inspector labels no longer shift slightly.

51906

IDE » Inspector

Labels and switches in Inspector align better on Linux.

52016

IDE » Inspector

Constants and other code items cannot have names that end in white space.

52069

IDE » Inspector

Make it so extraneous new lines in the column widths multi line editor are trimmed off and newlines between values are turned into commas.

52125

IDE » Inspector

Constants assigned to color or booleans show a label that is as wide as possible and not limited to the width of the color selector or switch.

52195

IDE » Inspector

The button on the Inspector panel for multiline items no longer has draw through artifacts.

52513

IDE » Inspector

Fixed up a bug in the method edit pane that resulted in an exception when adding an overload method to an interface.

52779

IDE » Inspector

Formatting is removed when you paste formatted text into the parameters field.

52790

IDE » Inspector

When you right click a boolean or color property editor, select an item from the contextual menu and then press ESC when editing the field value that shows up, the property editor reverts back to its normal appearance as a boolean or color editor.

49989

IDE » Layout Editor

Windows IDE: The window titlebar icon no longer overlaps the title text in the layout editor.

51277

IDE » Layout Editor

Pasting a flex space ToolButton copied from another view no longer causes a hang.

52271

IDE » Layout Editor

Container control shows assigned backdrop in its design mode not just when placed on another layout.

51993

IDE » Library

Floating Library panel on macOS no longer draw the top popup menu oddly.

52110

IDE » Library

Listbox now has a 3x icon in the Library.

7930

IDE » Miscellaneous

Searching for a picture by name shows the properties of windows controls that its been used in.

26224

IDE » Miscellaneous

Attributes can refer to constants that use fully qualified dotted paths to access them.

45584

IDE » Miscellaneous

An issue when adding ActiveX controls that used dates has been fixed so that the generated code is no longer incorrect requiring manual fixing.

51317

IDE » Miscellaneous

Go To Location no longer overrides tab locks.

51513

IDE » Miscellaneous

Clicking on an iOSView may still add properties that have been added since the project was created but things like autolayout properties won 't be sorted into a different order just by clicking on the view when other parts of the project are changed.

52003

IDE » Miscellaneous

Undo of adding a file type to the file type editor removes pane from the UI.

52286

IDE » Miscellaneous

Search and replace on the declaration line no longer messes up the declaration when you need to replace many items in the declaration.

52490

IDE » Miscellaneous

There should be no longer be any overlapping controls in the bottom Find/Errors/Messages panel.

52720

IDE » Miscellaneous

An exception that could occur when an error that referred to an item that had been deleted no longer occurs.

42060

IDE » Navigator

Items from search panel are now properly highlighted in the Navigator.

42458

IDE » Navigator

Icons of items in modules now show the correct icon.

52255

IDE » Navigator

When changing the name of a method it remains selected in the Navigator.

52275

IDE » Navigator

Scope settings in the Navigator contextual menu for a class in a module behave properly.

51725

IDE » Preferences

Can edit color scheme and export immediately without having to first close the Preferences.

52437

IDE » Profiler

Warning dialog about building with profiling on now displays properly.

52733

IDE » Profiler

The dialog warning about compiling with profiling on no longer appears oddly on macOS.

51166

IDE » Rendering

An issue where the IDE would create the wrong code has been corrected and now remote debugging from a 64-bit IDE to a 32-bit target is working.

51950

IDE » Updater

Update panel no longer draws left pane in shocking green.

13376

IDE » Web Page Editor

Naming an image / picture the same as a property on a web page no longer causes compilation errors.

51972

Plugin SDK

Plugin SDK prototypes are as expected and don 't generate warnings if you turn on strict prototypes.

52387

Plugin SDK

Updated REALGetPropValue to be more consistent when dealing with Variants.

Changes (11 cases)

Case

Area

Description

51695

Build

On Windows, when a non-Admin user tries to debug a 64-bit app with its security level set to Admin, a warning is now displayed.

50249

Build Process (GoCD)

Debian packages now include high rez icons @ 16, 32, 36, 48, 64, 72, 96, 128, 256, 512.

52272

Database Plugins

SQLiteDatabase plugin has been updated to version 3.23.1.

51771

Framework » All

There is a version of REALBasic.Rect that takes x and y instead of a point.

52180

Framework » Web

App.SessionTimeout can no longer be set lower than 30 seconds.

52126

Framework » Windows

Optimized Pseudo-transparency using a different drawing model. Instead of caching pictures we now call additional Paint events on the Parent windows to help draw the background of child controls.

52568

IDE

Issue resolution window default width is 600 or 75% of the opened project window, whichever is greater.

52085

IDE » Debugger

The debugger tab now has a bug icon to make it distinct from the others.

52757

IDE » Scripting

Since iterating a folder is no longer assured to do so in alphabetical order we impose that ordering now so IDE scripts load in alphabetical oder.

52853

Installer

Windows Installer has been updated with the Windows 7 SP1 minimum requirement.

51949

Lingua

Lingua and iOSImageMaker are now 64-bit on macOS.

New items (23 cases)

Case

Area

Description

37170

Database Plugins

SQLiteDatabase now allows up to 30 attached databases.

23441

Framework » All

Graphics API now takes Doubles instead of Integers for better precision.

51019

Framework » All

Add new Resources and GetResource methods to SpecialFolder.

SpecialFolder.Resources() As FolderItem
on macOS:

returns a reference to the Resources Dir in a bundled app (GUI) otherwise returns a references to the Resources Dir next to the executable

on Windows/Linux:

returns a reference to the “<App name> Resources” dir if it exists, or the Resources dir next to the exe if it exists returns nil if neither exists

SpecialFolder.GetResource(name As string) As FolderItem
on macOS:

returns a reference to the named item in the Resources Dir in a bundled app (GUI) otherwise returns a references to the named item in the Resources dir next to the executable

on Windows/Linux:
first checks if “<App name> Resources” dir exists and the named item exists in this dir

returns a reference to this item if it exists

otherwise checks if “Resources” dir exists and the named item exists

returns a reference to this item if it exists

returns nil if the named item does not exist in either

52522

Framework » All

Added AntiAliasMode property on Graphics class. This property controls the level of interpolation/quality when drawing scaled Pictures. Valid modes are from the Graphics.AntiAliasModes enumeration: LowQuality, DefaultQuality, and HighQuality. The default is DefaultQuality.

51556

Framework » Windows

Printing is no longer restricted to 96 DPI.

52229

Framework » Windows

Updated Webkit based HTMLViewer to CEF 3.3359.1774.gd49d25f.

37898

Framework » iOS

iOSTable now supports Pull-To-Refresh. To use, set the AllowsRefresh property to True and then when you're done refreshing data, call the EndRefresh method.

46879

Framework » iOS

iOSToolbutton.NewBordered is now marked deprecated.

51142

Framework » iOS

iOSApplication.Open now receives the launchOptions Ptr as a parameter and returns a boolean as to whether or not the app is handling the request.

52117

Framework » iOS

It is now possible to disable the default height constraints on a iOSTableCustomCell by setting the UseDynamicHeight property to True. This allows you to create cells which vary in height based on their content. The default value for this property is False to maintain backward compatibility.

52118

Framework » iOS

Inserting or Removing a row/section within the visible rows on an iOS table is now animated.

52333

Framework » iOS

iOSHTMLViewer is now a WKWebView instead of a UIWebView.

52599

Framework » iOS

iOSViews now have a LargeTitleMode property which allows you to enable and control how titles render in iOS 11+ using the LargeTitleModes enumeration, which has these elements: Automatic, Always, Never (the default). This property does nothing on pre-iOS 11 versions.

1557

IDE » FileIO

There's now an option to save XML projects with indentation so they are more readable.

43408

IDE » Find & Replace

Find keeps a history of recent searches (15 at this time).

52314

IDE » Find & Replace

Search scope segmented control grows and shrinks as segments are added and removed instead of staying the same size.

52319

IDE » Inspector

Moved the Browse item in the picture and image property pickers up to the second item in the list so in a project with a lot of images its easy to find (instead of being at the very end of a really long list of images).

51824

IDE » Preferences

There is now a “Clear Cache” button on the Build Preferences.

2760

IDE » Profiler

You can start and stop profiling in code. Use the global methods: StartProfiling and StopProfiling. Profile Code must be enabled in the Project menu for these to work.

21203

Lingua

Lingua can now import the Tab delimited files that it exports.

51626

Lingua

Added a menu to specify the search scope.

51791

Lingua

Added script methods to get the first and last rows and to get/set the current row.

52371

Plugin SDK

All Plugin SDK examples have been updated to build with Xcode 9 or newer and Visual Studio 2015 or newer.

Docs and examples (15 cases)

Case

Area

Description

51851

Examples

Moved EasyTCPSocket example projects so that they remain available for Windows/Linux users.

51946

Examples

SQLitePreparedStatement example now uses SQLitePreparedStatement everywhere. Also improved search results output.

52204

Examples

HTTP Example project is now set to 64-bit for macOS and now runs without errors.

52600

Examples

Added port number 5432 to PostgreSQL Listen and Notify example projects.

52753

Examples

WindowMenu example now checks for WindowMenuItems to allow other menus items to also exist in the Window.

50705

Language Reference » Documentation

Redim appears in autocomplete drop-down as “Redim” so it's consistent with documentation.

51598

Language Reference » Documentation

Array methods should now appear in bulit-in Language Reference.

51618

Language Reference » Documentation

Fixed typo in example code on Str page.

51619

Language Reference » Documentation

Cleaned up examples for StrComp page.

51678

Language Reference » Documentation

Fixed sample code for String.InStr method.

51828

Language Reference » Documentation

Added PreparedSQLStatement.Bind(zeroBasedParam As Integer, value As Variant, type As Integer) method overload to Bind page.

51829

Language Reference » Documentation

Added PreparedSQLStatement.BindType(types() As Integer) method overload to BindType page.

51858

Language Reference » Documentation

Local LR shows the various operators with both their symbol and text name.

52119

Language Reference » Documentation

Description for iOSDatePicker.MinuteInterval now properly notes it can be used with Time and DateTime display modes.

52152

Language Reference » Documentation

Documentation wiki updated with value for REG_QWORD.