2019r3 Release Notes

From Xojo Documentation

Xojo 2019 Release 3 is now available with over 100 changes and improvements, focusing on iOS.

Major changes include:

  • iOS
    • iOS 13 Dark Mode support (Color Groups).
    • iOS Blur effects using iOSRectangle.
    • iOS SF Symbol image access.
    • iOS Text Area border settings.
  • Other
    • SQLite has been updated to 3.29.0.
    • ListBox iterators.
    • String improvements.
    • DateTime improvements.
    • System.VersionData class for getting OS version information.

Release Notes

Bug Fixes

57919CompilerWebSession no longer gets a deprecation warning about Append being changed to AddRow.
58362CompilerFolderItem.Launch deprecation warning now points to FolderItem.Open.
55867Crashes & Assertions » CrashWindows: Updated WebKit based HTMLViewer to CEF 77.1.14+g4fb61d2+chromium-77.0.3865.120 which fixes issue with cefsubproc.exe child processes being left around when app terminates abnormally.
57678Crashes & Assertions » CrashNo longer randomly crashes when closing a Window (the crash was dependent on where the Window was being Closed, and how the controls were being destructed in user code, so in most cases this was not an issue).
57512Crashes & Assertions » IDE Unhandled ExceptionFixed an issue with IDE Automation which could result in an IDE crash in certain circumstances.
58090Crashes & Assertions » IDE Unhandled ExceptionLoading text file projects that try to access external items that may not be accessible should no longer raise an unhandled IOException.
58398Crashes & Assertions » IDE Unhandled ExceptionFailed Xojo Cloud deployments no longer crash the IDE.
58458Crashes & Assertions » IDE Unhandled ExceptionFixed an issue which caused external items' internal file representation to get corrupted when the project containing the item was saved.
58403Database Plugins » SQLiteSetting up a BooleanValue for a DatabaseRow no longer leads to crashes or always returning False.
55586Framework » AllWindows/Linux: Floating windows that host a MenuBar now get a chance to handle the MenuItem instead of the parent document window that the floater may have been opened from.
57751Framework » AllJoin is now marked as deprecated, with String.FromArray as its replacement.
58217Framework » AllDeprecated Graphics.ClearRect in favor of Graphics.ClearRectangle.
58328Framework » AllThe ComboBox.Hint string that is setup in the IDE inspector is now correctly reflected at runtime, instead of having to set the Hint in code for it show up.
58342Framework » AllCalling IsEventImplemented with an event name that doesn't exist no longer crashes the IDE.
58352Framework » AllToolbarItem/ToolbarButton no longer generate deprecation warnings
58391Framework » AllWindow.Types.GlobalFloating enum value now returns 7 instead of 9.
58472Framework » AllListbox.CellCheckBoxStateAt now uses the newer CheckBox.VisualStates enum.
55120Framework » LinuxClosing a modal window no longer prevents app from properly terminating
57404Framework » LinuxHTMLViewer.Print no longer crashes, now presents the print dialog.
58017Framework » LinuxListbox: clipping the graphics in the CellTextPaint or CellBackgroundPaint events now correctly clips the graphics instead of potentially clipping past the content area
58254Framework » LinuxChanging the Label TextColor no longer leaks memory.
58331Framework » LinuxSerialConnection.Handle no longer always returns 0 on Linux/Pi.
52188Framework » WindowsChanging a SubMenu's Text now works correctly for 32-bit builds.
52346Framework » WindowsConsole apps: Unhandled exceptions that occur on a separate thread now raise the App.UnhandledException event properly on Windows.
57430Framework » WindowsGroupBox no longer draws border line incorrectly when the caption font size is smaller/larger than the default.
58292Framework » WindowsThe app now properly terminates when the system sends us a shutdown message. Previously we only closed the windows but the app would still be running in the background.
58373Framework » WindowsGraphics: DrawCautionIcon, DrawNoteIcon and DrawStopIcon have been updated to render with a newer look as seen on Vista or newer
44100Framework » iOSiOSTable.RowCount method now raises an OutOfBoundsException when the supplied section does not exist.
58435Framework » iOSiOSGraphics.LineColor is no longer changed to FillColor after calling DrawTextBlock.
32055IDE » Auto CompleteRemoved Ptr.Object, String, Text and Variant from docs and auto-complete as they were never supported by the compiler.
58367IDE » Auto CompleteDeprecated System.GetNetworkInterface and replaced with NetworkInterface to match API 2.0 naming and current docs.
55467IDE » Code EditorCode editor scrolls horizontally earlier to better keep the cursor on-screen.
57797IDE » Code EditorWhen splitting a single-line If statement to multiple lines, set the case for the Else and End If parts based on user settings and the case of the initial If.
58174IDE » Code EditorSuper-Returns on lines which begin with "rem" but are not a comment line no longer auto-insert "REM" on the next line.
58201IDE » Code EditorIsEventImplemented now shows a code hint in the code editor.
58356IDE » FileIOFixed typo in Save As warning message.
58409IDE » FileIOIDE no longer corrupts External Item internal paths when saving them.
56454IDE » GraphicsInspector textfields should now all update correctly between light and dark mode.
58386IDE » InspectorProperties whose names contain uppercased acronyms no longer get split incorrectly.
57748IDE » MiscellaneousFileTypeGroup editor no longer accepts spaces in the Name field.
57820IDE » MiscellaneousDo not display the default working path as the Shared Build Setting Destination when it is in fact Nil.
58397IDE » NavigatorAttribute badges stay visible on code items again.
56620IDE » Refactoring ToolsInterfaces whose methods have attributes get the correct names again when applied to a class.
58072IDE » Tab Order EditorTab Order editor now shows the contents of the Value property if it is present.
58407IDE » Toolbar EditorToolbar editor background no longer changes color when dragging items in dark mode.
45 Bug Fixes


58449BuildThe BlurContent parameter has been removed from iOSRectangle.SetEffect.
56258Framework » AllAdded ColorGroup project item, initially only for iOS projects.
57665Framework » AllSystem version information is now available from Xojo.System.Version on iOS and System.Version on other platforms.
57673Framework » AllColorGroups will now automatically produce fallback colors on versions of iOS which don't support a named color.
57736Framework » AllAdded more descriptive exception error message when Variant to Date conversion fails.
58063Framework » AllDeprecated VirtualVolume class, FolderItem.CreateVirtualVolume and FolderItem.OpenAsVirtualVolume.
58318Framework » AllAdded MessageDialog.IconType and IconTypes enum to replace Icon and constants (GraphicNone, GraphicCaution, GraphicNote, GraphicQuestion, GraphicStop).
57664Framework » iOSColor.IsDarkMode is now available on iOS.
57581IDE » Auto CompleteAutocomplete is now disabled inside string literals.
57627IDE » Constant EditorDisabled spell checking in the Constant editor.
57727IDE » Language ReferenceWindows IDE: Language Reference HTMLViewer now uses the WebKit renderer to resolve some drawing issues.
58106IDE » Layout EditoriOSSegmentedControl now renders like iOS 13 in the layout editor.
56711IDE » MiscellaneousWhen using CMD/Control-O on the Project Chooser window to choose an existing project, the Project Chooser window is now closed after making the selection. Additionally, the File->New menu item now stays enabled when the Project Chooser window is open. If File->New is selected when the Project Chooser window is already open, perhaps in the background, then the Project Chooser is brought to the front.
57538IDE » PreferencesPreferences no longer offers "REM" without a trailing space as a comment prefix because it causes compile errors.
56733ReportingYou can now use Report.Run with a RowSet as its data source.
15 Changes

New Items

57806Database Plugins » SQLiteSQLite has been updated to 3.29.0.
38001Framework » AllAdded Boolean ToString and FromString support.
56475Framework » AllAdded Listbox.Rows to iterate through all the rows of a Listbox. This includes:

ListboxRow class - Columns (also iterable returning ListboxColumn) - Selected As Boolean - Tag As Variant ListboxColumn class - Value As String - Tag As Variant

- Type As CellTypes
56591Framework » AllAdded String.IsEmpty method.
56756Framework » AllAdded String.AscByte, ChrByte, SplitBytes as replacements for deprecated AscB, ChrB and SplitB. Added String.LeftBytes, RightBytes, MiddleBytes, IndexOfBytes to replace LeftB, RightB, MidB and InStrB.
57695Framework » AllAdded DateTime.IsDaylightSavingsTime (read-only) to determine whether the DateTime is in daylight savings time or not.
57804Framework » AllYou can now subtract two DateTime values and get back a DateInterval using the - operator.
57876Framework » AllAdded Operator_Convert methods so you can convert a Date to a DateTime and a DateTime to a Date.
57937Framework » AllDateTime: added new ToString function that accepts a format string according to these guidelines:
55947Framework » iOSAdded support for SF Symbols in the iOS framework. Images can be retrieved using the iOSImage.SystemImage shared method.
56303Framework » iOSiOS Framework now supports dark mode.
58334Framework » iOSiOSTextArea has new BorderStyle and BorderColor properties to make it easy to create rectangular and rounded borders.
58497IDE » ColorGroup EditorColorGroup swatches now have Copy & Paste contextual menus to help with interoperability with other design tools. Copying a color will give you the HTML hex version of a color. Pasting supports 3, 6 and 8 digit HTML colors as well as Xojo color literals.
58013IDE » Error & Warning PanelForce Errors to always appear before Warnings when analyzing project.
57117IDE » MiscellaneousRe-organized Help menu, added Support menu item, made text clearer, and added appropriate accelerator characters.
54935IDE » Refactoring ToolsPressing SHIFT-RETURN on a line which contains an Inline IF statement now converts it to a multi-line If-Then-Else statement.
16 New Items

Docs and Examples

57787DocumentationIDE Script IO Page now shows LoadText method (previously it was incorrectly called ReadText).
57150Language Reference » DocumentationLinks to pages with error codes from various supported databases have been added to this page.
57702Language Reference » DocumentationThe sample code has been updated to more clearly explain the concept of AddRowAt.
57706Language Reference » DocumentationThe TabPanel.FontSize page has been added.
57726Language Reference » DocumentationThe error codes on the SerialConnection page now refer to the Error event and exception.
57729Language Reference » DocumentationOn FolderItem page, switched usage of LastErrorCode to a Try…Catch block.
57745Language Reference » DocumentationUpdated pages for FolderItem.CopyFileTo, For...Next, Pop, RectControl.AcceptFileDrop, and RectControl.DragEnter to use IsFolder.
57747Language Reference » DocumentationDatabaseRow.ColumnAt now shows String as the return type.
57750Language Reference » DocumentationFixed sample code on ListBox.ColumnSortTypeAt page.
57757Language Reference » DocumentationDoc page for SQLiteBLOB.EOF now notes that replacement is EndOfFile.
57758Language Reference » DocumentationFixed several typos in one of the examples.
57761Language Reference » DocumentationFixed typos in the Pop entry examples.
57763Language Reference » DocumentationUpdated iOSSQLiteDatabase.SQLSelect page notes to show how to pass NULL as a parameter.
57775Language Reference » DocumentationRemoved the UI update example from Thread.Run and replaced it with references to the new AddUserInterfaceUpdate and UserInterfaceUpdate members.
57776Language Reference » DocumentationUpdated the notes for Thread.Resume to indicate that the matching method is now Pause rather than Suspend.
57778Language Reference » DocumentationDatabaseColumn.DateTimeValue page now correctly shows that a DateTime variable should be used.
57784Language Reference » DocumentationGraphicsPath page now has See Also links to Graphics.DrawPath and FillPath.
57786Language Reference » DocumentationUpdated doc page for ListBox.DragRow to show correct way to have multiple drag items.
57794Language Reference » DocumentationThe database code examples on the Moving to API 2.0 page have been fixed to correctly return the value and close the RecordSet/RowSet.
57838Language Reference » DocumentationSerialConnection.Connect no longer returns a Boolean value, it should throw an exception on error.
57887Language Reference » DocumentationCurrency.FromText page more clearly notes that it uses Xojo.Core.Locale.
57908Language Reference » DocumentationUpdated WebTimer.Mode sample code to use Timer.ModeSingle rather than non-existent WebTimer.ModeSingle.
57918Language Reference » DocumentationSample code on SerialConnection page now uses Connect method instead of deprecated Open method.
57986Language Reference » DocumentationTimer page now has links to CallLater and CancelCallLater methods, along with corresponding TimeCallLater and TimerCallLaterWithValue delegates.
58015Language Reference » DocumentationConsoleApplication.DoEvents sample code and description now uses RunMode and Run.
58016Language Reference » DocumentationAdded information to InStr doc page deprecation warning to note that IndexOf replacement is 0-based.
58024Language Reference » DocumentationAdd a note to MessageDialog to warn against using it for debugging purposes.
58030Language Reference » DocumentationAdded Ptr.Structure to Ptr doc page.
58039Language Reference » DocumentationPopupMenu page notes now mention constant NoSelection (-1) which can be used to indicate no rows are selected.
58170Language Reference » DocumentationSample code on System.FontCount and System.LastFontIndex pages now uses correct MenuItem.AddMenu function.
58329Language Reference » DocumentationCorrected method signature for Datetime.AddInterval.
58341Language Reference » DocumentationClarified prepared statement parameter identifiers for SQLite on Database.SelectSQL page, added parameter table to Database.ExecuteSQL page and made usage of terms more consistent.
58344Language Reference » DocumentationFixed sample code on TimeZone page.
58481Language Reference » DocumentationRemoved doc pages for FolderItem properties that were removed in 2019r2, such as MacFSRef, MacCreator, etc.
34 Docs and Examples