2019r3

Xojo 2019 Release 3, with over 100 changes and improvements, was released on December 11th, 2019.

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.

Bug fixes (45 cases)

Case

Area

Description

57919

Compiler

WebSession no longer gets a deprecation warning about Append being changed to AddRow.

58362

Compiler

FolderItem.Launch deprecation warning now points to FolderItem.Open.

55867

Crashes & Assertions » Crash

Windows: 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.

57678

Crashes & Assertions » Crash

No 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).

57512

Crashes & Assertions » IDE Unhandled Exception

Fixed an issue with IDE Automation which could result in an IDE crash in certain circumstances.

58090

Crashes & Assertions » IDE Unhandled Exception

Loading text file projects that try to access external items that may not be accessible should no longer raise an unhandled IOException.

58398

Crashes & Assertions » IDE Unhandled Exception

Failed Xojo Cloud deployments no longer crash the IDE.

58458

Crashes & Assertions » IDE Unhandled Exception

Fixed an issue which caused external items' internal file representation to get corrupted when the project containing the item was saved.

58403

Database Plugins » SQLite

Setting up a BooleanValue for a DatabaseRow no longer leads to crashes or always returning False.

55586

Framework » All

Windows/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.

57751

Framework » All

Join is now marked as deprecated, with String.FromArray as its replacement.

58217

Framework » All

Deprecated Graphics.ClearRect in favor of Graphics.ClearRectangle.

58328

Framework » All

The 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.

58342

Framework » All

Calling IsEventImplemented with an event name that doesn't exist no longer crashes the IDE.

58352

Framework » All

ToolbarItem/ToolbarButton no longer generate deprecation warnings

58391

Framework » All

Window.Types.GlobalFloating enum value now returns 7 instead of 9.

58472

Framework » All

Listbox.CellCheckBoxStateAt now uses the newer CheckBox.VisualStates enum.

55120

Framework » Linux

Closing a modal window no longer prevents app from properly terminating

57404

Framework » Linux

HTMLViewer.Print no longer crashes, now presents the print dialog.

58017

Framework » Linux

Listbox: clipping the graphics in the CellTextPaint or CellBackgroundPaint events now correctly clips the graphics instead of potentially clipping past the content area

58254

Framework » Linux

Changing the Label TextColor no longer leaks memory.

58331

Framework » Linux

SerialConnection.Handle no longer always returns 0 on Linux/Pi.

52188

Framework » Windows

Changing a SubMenu's Text now works correctly for 32-bit builds.

52346

Framework » Windows

Console apps: Unhandled exceptions that occur on a separate thread now raise the App.UnhandledException event properly on Windows.

57430

Framework » Windows

GroupBox no longer draws border line incorrectly when the caption font size is smaller/larger than the default.

58292

Framework » Windows

The 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.

58373

Framework » Windows

Graphics: DrawCautionIcon, DrawNoteIcon and DrawStopIcon have been updated to render with a newer look as seen on Vista or newer

44100

Framework » iOS

iOSTable.RowCount method now raises an OutOfBoundsException when the supplied section does not exist.

58435

Framework » iOS

iOSGraphics.LineColor is no longer changed to FillColor after calling DrawTextBlock.

32055

IDE » Auto Complete

Removed Ptr.Object, String, Text and Variant from docs and auto-complete as they were never supported by the compiler.

58367

IDE » Auto Complete

Deprecated System.GetNetworkInterface and replaced with NetworkInterface to match API 2.0 naming and current docs.

55467

IDE » Code Editor

Code editor scrolls horizontally earlier to better keep the cursor on-screen.

57797

IDE » Code Editor

When 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.

58174

IDE » Code Editor

Super-Returns on lines which begin with rem but are not a comment line no longer auto-insert REM on the next line.

58201

IDE » Code Editor

IsEventImplemented now shows a code hint in the code editor.

58356

IDE » FileIO

Fixed typo in Save As warning message.

58409

IDE » FileIO

IDE no longer corrupts External Item internal paths when saving them.

56454

IDE » Graphics

Inspector textfields should now all update correctly between light and dark mode.

58386

IDE » Inspector

Properties whose names contain uppercased acronyms no longer get split incorrectly.

57748

IDE » Miscellaneous

FileTypeGroup editor no longer accepts spaces in the Name field.

57820

IDE » Miscellaneous

Do not display the default working path as the Shared Build Setting Destination when it is in fact Nil.

58397

IDE » Navigator

Attribute badges stay visible on code items again.

56620

IDE » Refactoring Tools

Interfaces whose methods have attributes get the correct names again when applied to a class.

58072

IDE » Tab Order Editor

Tab Order editor now shows the contents of the Value property if it is present.

58407

IDE » Toolbar Editor

Toolbar editor background no longer changes color when dragging items in dark mode.

Changes (15 cases)

Case

Area

Description

58449

Build

The BlurContent parameter has been removed from iOSRectangle.SetEffect.

56258

Framework » All

Added ColorGroup project item, initially only for iOS projects.

57665

Framework » All

System version information is now available from Xojo.System.Version on iOS and System.Version on other platforms.

57673

Framework » All

ColorGroups will now automatically produce fallback colors on versions of iOS which don't support a named color.

57736

Framework » All

Added more descriptive exception error message when Variant to Date conversion fails.

58063

Framework » All

Deprecated VirtualVolume class, FolderItem.CreateVirtualVolume and FolderItem.OpenAsVirtualVolume.

58318

Framework » All

Added MessageDialog.IconType and IconTypes enum to replace Icon and constants (GraphicNone, GraphicCaution, GraphicNote, GraphicQuestion, GraphicStop).

57664

Framework » iOS

Color.IsDarkMode is now available on iOS.

57581

IDE » Auto Complete

Autocomplete is now disabled inside string literals.

57627

IDE » Constant Editor

Disabled spell checking in the Constant editor.

57727

IDE » Language Reference

Windows IDE: Language Reference HTMLViewer now uses the WebKit renderer to resolve some drawing issues.

58106

IDE » Layout Editor

iOSSegmentedControl now renders like iOS 13 in the layout editor.

56711

IDE » Miscellaneous

When 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.

57538

IDE » Preferences

Preferences no longer offers REM without a trailing space as a comment prefix because it causes compile errors.

56733

Reporting

You can now use Report.Run with a RowSet as its data source.

New items (16 cases)

Case

Area

Description

57806

Database Plugins » SQLite

SQLite has been updated to 3.29.0.

38001

Framework » All

Added Boolean ToString and FromString support.

56475

Framework » All

Added 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

56591

Framework » All

Added String.IsEmpty method.

56756

Framework » All

Added 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.

57695

Framework » All

Added DateTime.IsDaylightSavingsTime (read-only) to determine whether the DateTime is in daylight savings time or not.

57804

Framework » All

You can now subtract two DateTime values and get back a DateInterval using the - operator.

57876

Framework » All

Added Operator_Convert methods so you can convert a Date to a DateTime and a DateTime to a Date.

57937

Framework » All

DateTime: added new ToString function that accepts a format string according to these guidelines: https://www.unicode.org/reports/tr35/tr35-57/tr35-dates.html#Date_Field_Symbol_Table

55947

Framework » iOS

Added support for SF Symbols in the iOS framework. Images can be retrieved using the iOSImage.SystemImage shared method.

56303

Framework » iOS

iOS Framework now supports dark mode.

58334

Framework » iOS

iOSTextArea has new BorderStyle and BorderColor properties to make it easy to create rectangular and rounded borders.

58497

IDE » ColorGroup Editor

ColorGroup 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.

58013

IDE » Error & Warning Panel

Force Errors to always appear before Warnings when analyzing project.

57117

IDE » Miscellaneous

Re-organized Help menu, added Support menu item, made text clearer, and added appropriate accelerator characters.

54935

IDE » Refactoring Tools

Pressing SHIFT-RETURN on a line which contains an Inline IF statement now converts it to a multi-line If-Then-Else statement.

Docs and examples (34 cases)

Case

Area

Description

57787

Documentation

IDE Script IO Page now shows LoadText method (previously it was incorrectly called ReadText).

57150

Language Reference » Documentation

Links to pages with error codes from various supported databases have been added to this page.

57702

Language Reference » Documentation

The sample code has been updated to more clearly explain the concept of AddRowAt.

57706

Language Reference » Documentation

The TabPanel.FontSize page has been added.

57726

Language Reference » Documentation

The error codes on the SerialConnection page now refer to the Error event and exception.

57729

Language Reference » Documentation

On FolderItem page, switched usage of LastErrorCode to a Try…Catch block.

57745

Language Reference » Documentation

Updated pages for FolderItem.CopyFileTo, For...Next, Pop, RectControl.AcceptFileDrop, and RectControl.DragEnter to use IsFolder.

57747

Language Reference » Documentation

DatabaseRow.ColumnAt now shows String as the return type.

57750

Language Reference » Documentation

Fixed sample code on ListBox.ColumnSortTypeAt page.

57757

Language Reference » Documentation

Doc page for SQLiteBLOB.EOF now notes that replacement is EndOfFile.

57758

Language Reference » Documentation

Fixed several typos in one of the examples.

57761

Language Reference » Documentation

Fixed typos in the Pop entry examples.

57763

Language Reference » Documentation

Updated iOSSQLiteDatabase.SQLSelect page notes to show how to pass NULL as a parameter.

57775

Language Reference » Documentation

Removed the UI update example from Thread.Run and replaced it with references to the new AddUserInterfaceUpdate and UserInterfaceUpdate members.

57776

Language Reference » Documentation

Updated the notes for Thread.Resume to indicate that the matching method is now Pause rather than Suspend.

57778

Language Reference » Documentation

DatabaseColumn.DateTimeValue page now correctly shows that a DateTime variable should be used.

57784

Language Reference » Documentation

GraphicsPath page now has See Also links to Graphics.DrawPath and FillPath.

57786

Language Reference » Documentation

Updated doc page for ListBox.DragRow to show correct way to have multiple drag items.

57794

Language Reference » Documentation

The database code examples on the Moving to API 2.0 page have been fixed to correctly return the value and close the RecordSet/RowSet.

57838

Language Reference » Documentation

SerialConnection.Connect no longer returns a Boolean value, it should throw an exception on error.

57887

Language Reference » Documentation

Currency.FromText page more clearly notes that it uses Xojo.Core.Locale.

57908

Language Reference » Documentation

Updated WebTimer.Mode sample code to use Timer.ModeSingle rather than non-existent WebTimer.ModeSingle.

57918

Language Reference » Documentation

Sample code on SerialConnection page now uses Connect method instead of deprecated Open method.

57986

Language Reference » Documentation

Timer page now has links to CallLater and CancelCallLater methods, along with corresponding TimeCallLater and TimerCallLaterWithValue delegates.

58015

Language Reference » Documentation

ConsoleApplication.DoEvents sample code and description now uses RunMode and Run.

58016

Language Reference » Documentation

Added information to InStr doc page deprecation warning to note that IndexOf replacement is 0-based.

58024

Language Reference » Documentation

Add a note to MessageDialog to warn against using it for debugging purposes.

58030

Language Reference » Documentation

Added Ptr.Structure to Ptr doc page.

58039

Language Reference » Documentation

PopupMenu page notes now mention constant NoSelection (-1) which can be used to indicate no rows are selected.

58170

Language Reference » Documentation

Sample code on System.FontCount and System.LastFontIndex pages now uses correct MenuItem.AddMenu function.

58329

Language Reference » Documentation

Corrected method signature for Datetime.AddInterval.

58341

Language Reference » Documentation

Clarified prepared statement parameter identifiers for SQLite on Database.SelectSQL page, added parameter table to Database.ExecuteSQL page and made usage of terms more consistent.

58344

Language Reference » Documentation

Fixed sample code on TimeZone page.

58481

Language Reference » Documentation

Removed doc pages for FolderItem properties that were removed in 2019r2, such as MacFSRef, MacCreator, etc.