2018r2 Release Notes

From Xojo Documentation

(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:

Download Xojo today.

Release Notes

Bug Fixes

52406BuildWindows/Linux IDE: Building with 64-bit native shared libraries in the Plugins folder now works properly.
5135CompilerAnalyze will report multiple warnings per line if necessary.
52291CompilerFixed an issue where Unicode characters in the project path could cause a failure when running or building 64-bit Windows apps.
51957Crashes & Assertions » CrashSetting the Horizontal or Vertical resolutions of a Picture object before calling its Super.Constructor no longer crashes but instead throws an UnsupportedOperationException.
47238Crashes & Assertions » Failed AssertionCancelling an update no longer causes an exception.
50576Crashes & Assertions » IDE Unhandled ExceptionNo longer get a NilObjectException when navigating back and forth using the forward and backward arrows.
51911Crashes & Assertions » IDE Unhandled ExceptionAn illegal cast when reading a project ui state file no longer causes the IDE to raise an unhandled exception.
52325Crashes & Assertions » IDE Unhandled ExceptionAn NilObjectException that can occur when altering the name of a control to be part of a control set has been fixed.
52661Crashes & Assertions » IDE Unhandled ExceptionA NilObjectException that could occur when caching plugins has been fixed.
51805Database PluginsMySQLCommunityServer now maintains its unsigned value when retrieving an unsigned smallest type instead of it being converted to a signed value.
49173DebuggerViewing the Runtime->Contents in the debugger (for 64-bit debug apps) no longer crashes debug app.
49634Framework » AllRotated PixmapShapes and StringShapes are now positioned correctly (was incorrectly placed at HiDPI and when printing before).
51965Framework » AllQuitting from a Close event no longer causes the application to crash.
52138Framework » AllJSONItem.Load no longer raises an OutOfBoundsException for an empty string.
52230Framework » AllContainerControl Moved event now fires again.
41061Framework » LinuxHTMLViewer no longer crashes on Pi.
49844Framework » LinuxSetting the BackColor and TextColor of a TextField or TextArea control now works.
50326Framework » LinuxThe text in some of the PopupMenu controls in the Options dialog of the IDE in Ubuntu 17.10 is no longer offset.
51981Framework » LinuxWindow bounds now correctly offsets the menu/toolbar from its top/height calculations.
52040Framework » LinuxIf there are more Tabs than available space to display them on a TabPanel, scrollable arrows now appear to get to them.
52041Framework » LinuxListbox headers no longer appear transparent.
52113Framework » LinuxBevelButton no longer ignores the TextSize.
52375Framework » LinuxWeb apps no longer hang at startup on Linux ARM builds.
52538Framework » LinuxControls in GroupBox are no longer incorrectly positioned on Pi.
38278Framework » Macintosh (Cocoa)Listbox with header and no border no longer leaves drawing artifacts behind.
52453Framework » Macintosh (Cocoa)Tooltips that are hidden automatically can now show themselves again.
34720Framework » WebWebTextAreas whose text contains line ending characters set in the IDE now sends the correct line ending characters to Internet Explorer.
52368Framework » WebWebFileUploader properly resets again when a new instance is created.
52395Framework » WebAuto-Reconnect works on Firefox again.
52419Framework » WebWebStyle gradient stop points render in the correct order again.
52492Framework » WebWebFileUploader no longer fails on IE11.
52514Framework » WebUploading large files using WebFileUploader will no longer fail with an OutOfBoundsException inside the web framework.
42277Framework » WindowsConsole apps that write to StdOut now convert the string to the correct encoding for the console.
45597Framework » WindowsBevelButton.Caption is no longer partially cut off when CaptionAlignment is Flush Left or Flush Right.
49499Framework » WindowsWebKit based HTMLViewer now updates the contents immediately when resizing.
51583Framework » WindowsNow honoring the Serial.RequestToSend property.
51840Framework » WindowsHiding/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.
51841Framework » WindowsListbox header no longer lags behind content when scrolling or when resizing columns.
51844Framework » WindowsXojo.IO.TextOutputStream/BinaryStream can now correctly create and open files that contain unicode characters on Windows.
51847Framework » WindowsUsing Xojo.Net.HTTPSocket to send a file that contains Unicode characters in its file path/name now works.
51867Framework » WindowsNow using higher quality anti-aliasing when scaling a Picture.
51897Framework » WindowsSlider controls now update their background correctly when its parent window updates.
52012Framework » WindowsSliders placed directly on a TabPanel now correctly matches the TabPanel background color.
52087Framework » WindowsRotating an Object2D on a clipped Graphics now correctly rotates on the relative X, Y delta supplied.
52165Framework » WindowsOpenGLSurface: Calling Render from a Paint event now works again.
52257Framework » WindowsListbox focus ring is now drawn thin dotted again instead of dashes.
52266Framework » WindowsEmbedding ContainerControls on a hidden page of a PagePanel no longer causes redraw artifacts to appear.
52279Framework » WindowsWebKit based HTMLViewer now correctly scales when moving between monitors with different DPI scales.
52289Framework » WindowsListbox Drag reorder indicator is no longer offset incorrectly.
52312Framework » WindowsImproved ContainerControl scrolling.
52331Framework » WindowsMouseMove, MouseEnter and MouseExit events are now called for MDI child windows.
52402Framework » WindowsHierarchical Listbox disclosure icon is no longer painted in wrong row and too small.
52410Framework » WindowsA debug app with a Webkit based HTMLViewer on a window can now be closed properly when forcibly stopping the debug app.
52470Framework » WindowsOptimized a case where one would draw a picture to another picture frequently.
52481Framework » WindowsWe 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.
52748Framework » WindowsChanging a ToolButton's caption no longer leaks the icon associated with it.
52851Framework » WindowsTabPanel: 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.
37969Framework » iOSA 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.
51920Framework » iOSSetting the Active property on an iOSLayoutConstraint to False in the IDE now works.
52182Framework » iOSXojo.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.
52307Framework » iOSThe 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.
8788IDEMenuHandlers 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.
52728IDEExtract 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.
52043IDE » Auto CompleteFixed regression where global methods in external modules would not autocomplete.
52044IDE » Auto CompleteMenuItems autocomplete properly.
52373IDE » Auto CompletePagePanel.CreatePane and other internal details removed from autocomplete list.
51927IDE » AutoLayoutConstraint 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 else’s TOP as that would cause a crash.
35430IDE » Code EditorBare Exception and Catch statements no longer draw extraneous code matching markers.
42366IDE » Code EditorSelecting "Go to <constant>" from the context menu now selects the constant if it is a module.
51279IDE » Code EditorA Shift-Return on an ElseIf line that has no Then will add the Then as needed and close the ElseIf with an End If.
51683IDE » Code EditorA 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.
51774IDE » Code EditorClicking on the code folding hot box works properly.
51992IDE » Code EditorIndents and folding hit box positions are consistent even when using really small or really large font sizes.
52183IDE » Code EditorCode editor contextual Find does partial word searches not just whole word searches.
52372IDE » Code EditorHome and End scroll to beginning and ending of line.
51959IDE » DebuggerViewing properties of a Picture subclass in its Consturctor no longer crashes debugged app.
51880IDE » FileIOBackslash encoded strings in a note no longer cause issues when loading a project.
52053IDE » FileIOSubclassed iOS controls reload properly.
52407IDE » FileIOThe IDE now cleans out existing build folders before a target is built. This happens before any pre-build steps.
52426IDE » FileIOProject opening speed is vastly improved for some projects with incredibly long methods.
52573IDE » FileTypes EditorDeleting a file type in the File Type Set Editor moves the selection to an appropriate item.
52140IDE » Find & ReplaceSearch and replace within parameters no longer mishandles ByRef and Optional keywords.
52262IDE » Find & ReplaceSearch followed by a replace no longer alters the found items list or the search scope.
52795IDE » Find & ReplaceClicking on a breakpoint in the search results, when showing all breakpoints, correctly moves the Navigator focus.
51821IDE » InspectorChanging the scope of an external Objective-C method no longer drops the Objective-C setting.
51859IDE » InspectorInspector Size fields changed via paste now retain the correct value.
51861IDE » InspectorInspector labels no longer shift slightly.
51906IDE » InspectorLabels and switches in Inspector align better on Linux.
52016IDE » InspectorConstants and other code items cannot have names that end in white space.
52069IDE » InspectorMake it so extraneous new lines in the column widths multi line editor are trimmed off and newlines between values are turned into commas.
52125IDE » InspectorConstants 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.
52195IDE » InspectorThe button on the Inspector panel for multiline items no longer has draw through artifacts.
52513IDE » InspectorFixed up a bug in the method edit pane that resulted in an exception when adding an overload method to an interface.
52779IDE » InspectorFormatting is removed when you paste formatted text into the parameters field.
52790IDE » InspectorWhen 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.
49989IDE » Layout EditorWindows IDE: The window titlebar icon no longer overlaps the title text in the layout editor.
51277IDE » Layout EditorPasting a flex space ToolButton copied from another view no longer causes a hang.
52271IDE » Layout EditorContainer control shows assigned backdrop in its design mode not just when placed on another layout.
51993IDE » LibraryFloating Library panel on macOS no longer draw the top popup menu oddly.
52110IDE » LibraryListbox now has a 3x icon in the Library.
7930IDE » MiscellaneousSearching for a picture by name shows the properties of windows controls that its been used in.
26224IDE » MiscellaneousAttributes can refer to constants that use fully qualified dotted paths to access them.
45584IDE » MiscellaneousAn issue when adding ActiveX controls that used dates has been fixed so that the generated code is no longer incorrect requiring manual fixing.
51317IDE » MiscellaneousGo To Location no longer overrides tab locks.
51513IDE » MiscellaneousClicking 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.
52003IDE » MiscellaneousUndo of adding a file type to the file type editor removes pane from the UI.
52286IDE » MiscellaneousSearch and replace on the declaration line no longer messes up the declaration when you need to replace many items in the declaration.
52490IDE » MiscellaneousThere should be no longer be any overlapping controls in the bottom Find/Errors/Messages panel.
52720IDE » MiscellaneousAn exception that could occur when an error that referred to an item that had been deleted no longer occurs.
42060IDE » NavigatorItems from search panel are now properly highlighted in the Navigator.
42458IDE » NavigatorIcons of items in modules now show the correct icon.
52255IDE » NavigatorWhen changing the name of a method it remains selected in the Navigator.
52275IDE » NavigatorScope settings in the Navigator contextual menu for a class in a module behave properly.
51725IDE » PreferencesCan edit color scheme and export immediately without having to first close the Preferences.
52437IDE » ProfilerWarning dialog about building with profiling on now displays properly.
52733IDE » ProfilerThe dialog warning about compiling with profiling on no longer appears oddly on macOS.
51166IDE » RenderingAn 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.
51950IDE » UpdaterUpdate panel no longer draws left pane in shocking green.
13376IDE » Web Page EditorNaming an image / picture the same as a property on a web page no longer causes compilation errors.
51972Plugin SDKPlugin SDK prototypes are as expected and don’t generate warnings if you turn on strict prototypes.
52387Plugin SDKUpdated REALGetPropValue to be more consistent when dealing with Variants.
121 Bug Fixes


51695BuildOn 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.
50249Build Process (GoCD)Debian packages now include high rez icons @ 16, 32, 36, 48, 64, 72, 96, 128, 256, 512.
52272Database PluginsSQLiteDatabase plugin has been updated to version 3.23.1.
51771Framework » AllThere is a version of REALBasic.Rect that takes x and y instead of a point.
52180Framework » WebApp.SessionTimeout can no longer be set lower than 30 seconds.
52126Framework » WindowsOptimized 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.
52568IDEIssue resolution window default width is 600 or 75% of the opened project window, whichever is greater.
52085IDE » DebuggerThe debugger tab now has a bug icon to make it distinct from the others.
52757IDE » ScriptingSince 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.
52853InstallerWindows Installer has been updated with the Windows 7 SP1 minimum requirement.
51949LinguaLingua and iOSImageMaker are now 64-bit on macOS.
11 Changes

New Items

37170Database PluginsSQLiteDatabase now allows up to 30 attached databases.
23441Framework » AllGraphics API now takes Doubles instead of Integers for better precision.
51019Framework » AllAdd 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
52522Framework » AllAdded 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.
51556Framework » WindowsPrinting is no longer restricted to 96 DPI.
52229Framework » WindowsUpdated Webkit based HTMLViewer to CEF 3.3359.1774.gd49d25f.
37898Framework » iOSiOSTable 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.
46879Framework » iOSiOSToolbutton.NewBordered is now marked deprecated.
51142Framework » iOSiOSApplication.Open now receives the launchOptions Ptr as a parameter and returns a boolean as to whether or not the app is handling the request.
52117Framework » iOSIt 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.
52118Framework » iOSInserting or Removing a row/section within the visible rows on an iOS table is now animated.
52333Framework » iOSiOSHTMLViewer is now a WKWebView instead of a UIWebView.
52599Framework » iOSiOSViews 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.
1557IDE » FileIOThere's now an option to save XML projects with indentation so they are more readable.
43408IDE » Find & ReplaceFind keeps a history of recent searches (15 at this time).
52314IDE » Find & ReplaceSearch scope segmented control grows and shrinks as segments are added and removed instead of staying the same size.
52319IDE » InspectorMoved 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).
51824IDE » PreferencesThere is now a “Clear Cache” button on the Build Preferences.
2760IDE » ProfilerYou 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.
21203LinguaLingua can now import the Tab delimited files that it exports.
51626LinguaAdded a menu to specify the search scope.
51791LinguaAdded script methods to get the first and last rows and to get/set the current row.
52371Plugin SDKAll Plugin SDK examples have been updated to build with Xcode 9 or newer and Visual Studio 2015 or newer.
23 New Items

Docs and Examples

51851ExamplesMoved EasyTCPSocket example projects so that they remain available for Windows/Linux users.
51946ExamplesSQLitePreparedStatement example now uses SQLitePreparedStatement everywhere. Also improved search results output.
52204ExamplesHTTP Example project is now set to 64-bit for macOS and now runs without errors.
52600ExamplesAdded port number 5432 to PostgreSQL Listen and Notify example projects.
52753ExamplesWindowMenu example now checks for WindowMenuItems to allow other menus items to also exist in the Window.
50705Language Reference » DocumentationRedim appears in autocomplete drop-down as “Redim” so it’s consistent with documentation.
51598Language Reference » DocumentationArray methods should now appear in bulit-in Language Reference.
51618Language Reference » DocumentationFixed typo in example code on Str page.
51619Language Reference » DocumentationCleaned up examples for StrComp page.
51678Language Reference » DocumentationFixed sample code for String.InStr method.
51828Language Reference » DocumentationAdded PreparedSQLStatement.Bind(zeroBasedParam As Integer, value As Variant, type As Integer) method overload to Bind page.
51829Language Reference » DocumentationAdded PreparedSQLStatement.BindType(types() As Integer) method overload to BindType page.
51858Language Reference » DocumentationLocal LR shows the various operators with both their symbol and text name.
52119Language Reference » DocumentationDescription for iOSDatePicker.MinuteInterval now properly notes it can be used with Time and DateTime display modes.
52152Language Reference » DocumentationDocumentation wiki updated with value for REG_QWORD.
15 Docs and Examples