2021r1 Release Notes

From Xojo Documentation

Xojo 2021 Release 1 is now available with over 250 changes and improvements. Also be sure to view 2021r1.1 Release Notes for improvements.

Major changes include:

  • Xojo IDE is now native on Apple Silicon Macs.
  • XojoScript now supported on Apple Silicon Macs.
  • macOS 11 SDK now used for both Intel and Apple Silicon builds.
  • iOS apps now use iOS SDK 14.
  • SF Symbol toolbar icons on Big Sur.
  • Graphics.Translate, Rotate, SaveState and RestoreState available in Desktop projects.
  • New WebLocation class.
  • New iOS UserAuthentication class.
  • Much faster JSON processing.
  • Many IDE improvements.
  • Worker improvements, including native Apple Silicon helper apps.
  • WebFileUploader optimized to improve speed, memory and CPU usage.
  • PDFGraphics improvements.
  • Numerous Code Editor and Autocomplete improvements.
  • SQLite updated to 3.34.1.
  • 172 bug fixes!

Release Notes

Bug Fixes

63020BuildBuilding *just* a Universal app with "Show Built apps in Finder/Explorer" enabled in Preferences now displays the window with the Universal app selected, rather than the root build folder.
63183BuildFixed a timing issue that could sometimes prevent Worker Helpers from quitting themselves if their main app was terminated.
63729BuildUsing dot notation in Project Items to Include now properly includes all items, not just the top-level item.
63795BuildThe project now builds correctly if its Worker was removed after the project had been previously built with the Worker.
63813BuildSelecting a compile error from the Errors pane in a project that has a Worker now properly takes you to the code item in the project.
53702Crashes & Assertions » CrashAdding a class or module to a project and immediately undoing that add now clears the command bar.
63400Crashes & Assertions » CrashFixed a crash which occurred when pasting text into the code editor on Windows and the last word in the pasted text matched and autocomplete phrase.
63465Crashes & Assertions » CrashReduce possibility of a NilObjectException when handling a button press in WebMessageDialog.
63495Crashes & Assertions » CrashUsing a dual color ColorGroup on macOS < 10.14 no longer crashes.
63396Crashes & Assertions » Failed AssertionFixed a crash when toggling off a breakpoint.
59142Crashes & Assertions » IDE Unhandled ExceptionProject items can no longer be named any of the 24 reserved MS-DOS filenames: AUX, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, COM0, CON, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, LPT0, NUL, PRN
62554Crashes & Assertions » IDE Unhandled ExceptionTrying to edit a string in the debugger no longer crashes the IDE if one of the two fields needed for the editor couldn't be initialized.
63511Crashes & Assertions » IDE Unhandled ExceptionThe IDE no longer crashes if a sound file on disk is deleted without removing it from the project and then the project is run or built.
63537Crashes & Assertions » IDE Unhandled ExceptionFix a potential crash when bringing the IDE to the foreground.
63600Crashes & Assertions » IDE Unhandled ExceptionFixed a potential crash when double-clicking the inline editing button on a control.
63945Crashes & Assertions » IDE Unhandled ExceptionFixed a possible crash when Undoing to something that no longer exists.
64045Crashes & Assertions » IDE Unhandled ExceptionPrevent a NilObjectException that could occur in some circumstances when clearing internal caching.
60656Database Plugins » MySQLMySQLCommunityServer.BeginTransaction no longer raises a DatabaseException with syntax error.
63290Database Plugins » PostgreSQLAdded PostgreSQLDatabase.Connect(additionalOptions As String). This function throws an exception on error.
64145Database Plugins » SQLiteAfter an invalid ExecuteSQL/SelectSQL raises an exception, subsequent valid calls no longer raises the same exception.
16022DebuggerWindow (Desktop) and MobileScreen (iOS) debugger contents list can now be sorted by name.
20124Framework » AllRectControl.AcceptMacDataDrop is now marked as deprecated in the framework.
53073Framework » AllJSONItem.Value now accepts values from Integer.ToText without erasing the JSONItem contents.
62134Framework » AllPDFDocument.Graphics.FontAscent works now as expected without needing to draw some text if first place
62235Framework » AllSMTPSecureSocket no longer produces deprecation warnings.
63071Framework » AllGraphics.DrawPath: now throws a NilObjectException if path is Nil.
63085Framework » AllDeprecated MemoryBlock.Short and UShort to Int16Value and UInt16Value respectively.
63154Framework » AllFixed a precision issue with currency values retrieved when iterating a RowSet.
63158Framework » AllAn array that exceeds 2GB of allocation space no longer crashes or causes corruption when assigning/retrieving values from it. While you can allocate more than 2GB of space now, you should check the bounds to make sure it got allocated properly. When using Redim/ResizeTo, the function will throw an OutOfMemoryException if the memory could not be allocated.
63185Framework » AllDeprecated SelectFolder, use FolderItem.ShowSelectFolderDialog instead.
63207Framework » AllCurrency.FromString no longer raises a failed assertion when the string is incorrectly formatted for currency conversion.
63209Framework » AllDo not allow a Worker to be added to a Window.
63227Framework » AllNow FolderItem.Name keeps the old file name when the new one can’t be set.
63297Framework » AllThese previously deprecated items are now shown by Analyze Project: OpenPrinterDialog -> PrinterSettings.ShowPrinterDialog, OpenPrinter -> PrinterSettings.OpenPrinter, OpenURLMovie -> Movie.OpenURL, RGB -> Color.RGB
63334Framework » AllNow supports Declares that references the same function that exists in multiple shared libraries.
63335Framework » AllMarked SMTPSecureSocket.SMTPConnectionMode as deprecated with SMTPConnectionType as replacement. Changed PopupMenu.Text deprecation replacement to SelectRow.
63502Framework » AllSoft Declares that reference the same function, that exists in multiple shared libraries, now works correctly.
63515Framework » AllPDFDocument: Fixed X/Y coordinates so it takes into consideration the PenSize value when drawing Rectangles and Ovals.
63710Framework » AllChanged the order of drawing in PDF Rectangle, so it produces the same output that when using the regular Graphics class with a LineDash pattern.
63749Framework » AllFixed PDFGraphics.DrawOval/FilledOval combined with a LineDash pattern. Remarks: the output is approximated over the one we get using regular Graphics context when drawing a Circle instead of an Oval.
63797Framework » AllXojoScript: added some missing Error enumeration values:

UnresolvedTypeInExpression = 211 PairOperatorUnavailable = 212 ObjCDeclaresPlatform = 213 FunctionTooLong = 300

FunctionUsesTooMuchStackSpace = 301
63858Framework » AllPDFDocument: Using "Zapf Dingbats" as the font now properly renders the text.
62326Framework » DesktopPDFDocument.TextWidth now returns the expected value for the selected font also on Web.
63046Framework » DesktopPDFDocument: Fixed the FontAscent and FontHeight values when a new FontSize is set.
63092Framework » DesktopPDFDocument: Fixed a bug where setting the FontName to "System" wasn't drawing the text.
63325Framework » DesktopFixed returning TextHeight value when using the wrapwidth parameter (regression).
63593Framework » DesktopLinux: SaveFileDialog now correctly returns a FolderItem with the proper file extension appended to the name (according to the filter selected).
63639Framework » DesktopThe SearchField.KeyUp and KeyDown events have been removed.
63640Framework » DesktopSearchField doesn’t fire the TextChanged event when it gets the first focus.
63766Framework » DesktopRemoved KeyDown/KeyUp event handlers from SearchField on Desktop.
62995Framework » LinuxWhen Normalize Control Size is enabled, non-Xojo windows are no longer incorrectly adjusted, especially GtkEntry widths.
63254Framework » LinuxHTMLViewer now correctly triggers focus events when it gains/loses focus.
63522Framework » LinuxWith Normalize Control Sizes enabled, we no longer constantly probes theme changes. So a layout with many controls on the window no longer runs super slow.
63598Framework » LinuxURLConnection: getting the ResponseHeader, after SendSync is called, no longer raises an Exception.
63650Framework » LinuxFolderItem.Name only is set on Linux if there is not an already existing file with the same name.
61238Framework » WebAdded WebListbox.Selected setter method.
61320Framework » WebWebUploadedFiles now have the mime type that was supplied by the user's OS/Browser.
61374Framework » WebWebListbox.Selected is available again.
61387Framework » WebSetting the WebListbox.SelectedRowIndex in the same event loop as adding the row data now works.
61510Framework » WebWebButton OK & Cancel events fired by the RETURN and ESC keys now only fire once.
61660Framework » Webfavicon.ico no longer returns a 404 Not Found response to the browser.
61715Framework » WebChanging properties and adding/removing dataasets on a WebChart will now force the control to update.
61753Framework » WebThe WebFileUploader logic has been refactored to make it faster, less CPU and memory intensive and less prone to errors.
61768Framework » WebWebDatePicker now automatically closes when the user chooses a date.
61825Framework » WebInitialValue property for WebComboBox, WebListBox, WebRadioGroup now shows the multi-line edit "pencil" icon to open the larger editor after a project has been saved and re-loaded.
61959Framework » WebWebRadioGroup: AddRow, AddRowAt, RowAt, RowCount, SelectedRow and SelectedRowIndex have been deprecated and replaced with Add, AddAt, ItemAt, Count, SelectedItem and SelectedIndex respectively to match other non-list control treatment.
61985Framework » WebWeb GotFocus and LostFocus events now fire correctly for keyboard and mouse events.
61991Framework » WebShowing a WebDialog now refreshes all controls to make sure they are up to date.
62123Framework » WebWebListbox now refreshes properly when the container it is on becomes visible.
62407Framework » WebWebListbox.ColumnSortDirectionAt is now updated when the user clicks a header to change the sort order of a column. This change only applies to WebListboxes that are not connected to a datasource.
62602Framework » WebWebCombobox no longer shows HTML encoding of < > & ' and " in its text field when the item is selected from its menu.
62634Framework » WebWebPopupMenu.SelectedRowIndex and LastAddedRowIndex now have a value of -1 by default.
62694Framework » WebWeb apps now do a better job of cleaning up their temporary directories between runs.
62799Framework » WebWebDatePicker now uses the correct date format for non-US browsers.
62828Framework » WebSetting the WebDatePicker's Enabled property to False at runtime will now prevent the popup from appearing as well.
62939Framework » WebWebComboBox.SelectedRowIndex now defaults to -1.
62964Framework » WebThe WebSDK docs now include information about the javascript JSONItem class.
62992Framework » WebWeb apps now do a better job of cleaning up their temporary files when the app quits.
63013Framework » WebWebComboBoxes which contain items no longer throw an OutOfBoundsException when setting the SelectedRowIndex to -1.
63023Framework » WebFixed an issue where WebListbox.CellValueAt and CellTagAt was not throwing OutOfBoundsExceptions when the passed row or column index was greater than the number of rows or columns.
63043Framework » WebThe web framework no longer chokes on requests > 64K.
63133Framework » WebSetting the value of a WebComboBox which has no menu no longer results in a javascript error.
63257Framework » WebWebListbox.RowTagAt (and other methods which retrieve row data) now return data from the correct row.
63293Framework » WebWebListbox.CellValueAt now stores data in the correct row when one of the columns is sorted in descending order.
63300Framework » WebRefactored the web refresh mechanism to make controls appear all at once instead of one at a time.
63397Framework » WebWebListbox.SelectionChanged now reports the correct selected items when using a datasource.
63407Framework » WebWebSegmentedButton segments can now be disabled.
63557Framework » WebSetting WebListbox.SelectedRowIndex now works properly.
63590Framework » WebWebImageViewers whose picture property is set to "None" no longer cause compiling to fail.
63681Framework » WebReduced WebFileUploader upload traffic when the UploadProgressed event is not implemented.
63784Framework » WebETag headers of web framework assets are now enclosed in quotes as suggested by the RFC.
63801Framework » WebWebListbox.SelectedRowIndex is now updated correctly when the user selects a row in a filtered list.
63924Framework » WebWeb Framework now periodically cleans up temporary files.
64015Framework » WebIcons on WebToolbarButtons with menus attached are now vertically aligned with icons on the other types.
64192Framework » WebNon-framework requests with Expect headers are now passed through to HandleURL.
57324Framework » WindowsWebKit-based HTMLViewer now respects the user's locale instead of always operating in the English locale.
63323Framework » WindowsWindows now appear at the correct scale when opened on a different DPI scaled secondary display (especially if the secondary display was position to the right of the primary display).
63327Framework » WindowsDrawing with LinearGradientBrush and RadialGradientBrush now respects the color's alpha channel.
63350Framework » WindowsFolderItem.CopyTo exhibits now the same behavior on Windows that on macOS and Linux when copying a Directory to a destination FolderItem.
63479Framework » WindowsHTMLViewer (WebKit): no longer steals focus when page loads, this also prevents unnecessarily activating a window.
63641Framework » WindowsSearchField for Windows displays now the Hint or Text values in the Layout Editor.
37799Framework » iOS » MobileRepeatedly playing sounds on iOS no longer crashes the app.
42008Framework » iOS » MobileThe iOS Sound Clone method now returns a valid sound object.
42106Framework » iOS » MobileThe iOS Sound class no longer leaks memory when a sound finishes playing.
62586Framework » iOS » MobileFixed some issues which prevented the iOS Associated Domains editor from working properly.
63148Framework » iOS » MobileRGBSurface: fixed getting/setting pixel color.
63411Framework » iOS » MobileSystem.Speak no longer crashes after ~150 uses.
63555Framework » iOS » Mobile3rd Party iOS Plugins no longer have badly formed CFBundleIdentifiers when generating their framework plist files.
63582Framework » iOS » MobileThe name "Globals" is no longer reserved.
63769Framework » iOS » MobileiOS Plugins can now access some of the more useful legacy APIs such as REALGetControlBounds, REALGetControlVisible, REALSetControlVisible, REALGetControlEnabled, and REALSetControlEnabled.
63818Framework » iOS » MobileMobileMoviePlayer.LoadURL now loads HTTP URLs correctly instead of only file URLs.
63911Framework » iOS » MobileMobileTableCellData now has two new enum values, Info and InfoAndDisclosure, to replace the existing Detail item which unfortunately also shows the disclosure widget.
64062Framework » iOS » MobileGraphics Width/Height now returns values that account for the base scale factor like on Desktop.
62540Framework » macOSFolderItem: CreationDateTime and ModificationDateTime now reports the correct DateTime instead of potentially being offset by daylight savings.
63383Framework » macOSLinearGradientBrush and RadialGradientBrush now fills the region before the start point on macOS like it already does on Windows and Linux.
63467Framework » macOSChanging a property on the ToolItem class no longer completely destroys the state of the previous item on macOS.
61492IDE » Auto CompleteWeb control instances now show their icons correctly in the code editor autocomplete menu.
62380IDE » Auto CompleteDelegate methods no longer unconditionally match in autocomplete regardless of the typed prefix.
62382IDE » Auto CompleteRecordset autocompletes in non-Mobile projects created before 2019r2 again.
62430IDE » Auto CompleteAutocomplete works inside RaiseEvent calls again.
63011IDE » Auto CompletePrevent an exception that can occur in autocomplete when selecting an item in the list, dragging the mouse off the list and letting go of the mouse button.
63401IDE » Auto CompleteAutocomplete now shows Enumerations on Classes that are inside Modules.
63574IDE » Auto CompleteLocal variables whose name matches that of an enum somewhere in the framework no longer autocomplete the values of the enum.
63690IDE » Auto CompleteAutocomplete now works more consistently in the Method and Event parameters field.
63705IDE » Auto CompleteThe keyword Try now appears in the code editor autocomplete menu immediately after the keyword End.
63739IDE » Auto CompleteThe word "Default" will now appear in autocomplete on Pragma lines.
63830IDE » Auto CompleteException variables autocomplete properly again.
63860IDE » Auto CompleteThe keywords Case Else now autocompletes properly.
62829IDE » Build AutomationIDE Scripts can now build for both iOS device and simulator.
46019IDE » Code EditorThe "Wrap In" refactorings now apply standard case if the “Autocomplete applies standard case” preference is checked.
56329IDE » Code EditorThe Project->Breakpoint->Turn On/Off item is now enabled when debugging. This will toggle the breakpoint on the highlighted code execution line via the menu or shortcut.
57252IDE » Code EditorFixed typo in Code Editor contextual menu: “Convert invisible ascii characters” now says ASCII.
57770IDE » Code EditorBetter calculate gutter line number width so that it doesn't cause the gutter width to fluctuate when a proportional font is used.
60865IDE » Code EditorRefactored how the code editor's contextual help menu chooses which item to show in the language reference so things we have which are common to multiple classes still point to the correct items.
61001IDE » Code EditorUse consistent naming and case for Code Editor contextual menu for Add/Clear Breakpoint and Add/Clear Bookmark.
60807IDE » FileIOThe IDE now does a better job of informing the user about license changes and allowing you to back out of a save if saving will change the file format.
63139IDE » FileIOImproved places where text format projects were flipping boolean values between having quotes and not.
63828IDE » FileIOMobileContainer project items are now saved properly for XML projects.
63782IDE » Find & ReplaceSearch & Replace no longer corrupts the declaration of Properties when the text being replaced is in the "code editor" that appears in the main editing area.
59050IDE » InspectorWhen setting the name of a property, if the name contains parenthesis indicating it is to be an array property, the Default Value field is now disabled and cleared.
61424IDE » InspectorThe text color of the Event Definition parameters field is now correct when the system is in Dark Mode on macOS.
62819IDE » InspectorInspector bevel button icons are colored correctly again.
62905IDE » InspectorMobileApplication Inspector now shows Default iPhone/iPad Layout instead of Screen.
62974IDE » InspectorIn both the Layout Editor and at runtime, dynamic constants used for WebTabPanel tab captions now display the constant's value rather than showing the constant name.
63003IDE » InspectorFixed an exception that could occur if the user put a control on an iOS layout and then changed its Super to iOSContainerControl.
63536IDE » InspectorControl set indexes can no longer be set to invalid values.
63422IDE » Language ReferenceThe Windows IDE no longer shows URLs which point to the reveal user's temporary folder in a browser.
54784IDE » Layout EditorThe layout editor now does a better job of aligning text controls on the text baseline on macOS.
61485IDE » Layout EditorWebSegmentedControl now draws its selected segment in the IDE.
62221IDE » Layout EditorDuplicating a Web control now sets the TabIndex correctly.
62243IDE » Layout EditorDuplicating WebControls now increments tab indexes.
64129IDE » Layout EditorSlider now resizes for vertical orientation in the Layout Editor when height is greater than width.
52953IDE » LibraryIcons in the library are no longer blurry when dragging the window between low and hi dpi screens.
56302IDE » LibraryLibrary group headers no longer show the "New Subclass" contextual menu.
62676IDE » LibraryLibrary icons now correctly switch between dark and light mode.
63121IDE » LicensingIDE no longer invalidates the license when macOS is upgraded.
57309IDE » Menu EditorLooking up dynamic constant values to display in the IDE (in menus, iOS controls) when project build Language is "Default" is now more reliable.
57884IDE » MiscellaneousIDE Crash Recovery works again.
61554IDE » MiscellaneousWindows System Tray item shows IDE version again.
62273IDE » MiscellaneousCode editor hint for DateTime.ToString is now correct.
63056IDE » MiscellaneousPressing Return on License Agreement window should now always trigger "Accept".
63315IDE » MiscellaneousFixed a DateTimePicker control bug where it lead to a crash of the IDE under macOS 10.14, when removed from the layout and, then, the user changed the Time Format between 12/24 hours mode in the System Preferences.
63458IDE » MiscellaneousPrevent a duplicate separator from appearing in the Insert menu with desktop projects on Windows.
63468IDE » MiscellaneousIf a dynamic constant is used for the App Name, then use its value as the debugger tab name when the project changes rather than the constant name itself.
63472IDE » MiscellaneousDisplay localized App name when building so that proper name is displayed when a constant is used for the app name.
63664IDE » MiscellaneousWhen copying a method or property from the IDE to paste as text outside the IDE, the “as” for the return type of the method or data type of the property is now upper case to match the rest of the code formatting.
63821IDE » MiscellaneousFixed an infinite loop/crash that could occur when using "New Subclass" on a control that has a subclass that no longer exists.
56136IDE » NavigatorPrevent an IDE crash that can sometimes occur when a project item (usually in a folder or module) that can be displayed in the Library is moved, renamed or deleted.
58092IDE » NavigatorCreate a proper HiDPI picture for the Navigator drag picture for items that belong to a project item, such as methods, properties or controls.
61360IDE » NavigatorDragging a WebDialog in the Navigator no longer shows an oversized drag image.
61418IDE » NavigatorWebChart, WebImageViewer and WebLocation control instances now have the correct icons in the navigator.
63087IDE » NavigatorApple .m4a audio files are now correctly rendered as sound objects instead of MemoryBlocks.
63153IDE » NavigatorWebSession.ConfirmMessage, DisconnectMessage and InterruptMessage no longer raise an exception if the values set in the Inspector contain newline/returns.
62508IDE » Refactoring ToolsPreparedSQLStatement: SQLExecute and SQLSelect are now properly reported as deprecated when analyzing the project.
63450IDE » RenderingFile Type Groups now render correctly in iOS projects.
175 Bug Fixes


59842BuildRemoved 32-bit macOS frameworks from the IDE.
63295Database Plugins » SQLiteSQLite has been updated to 3.34.0
63706Database Plugins » SQLiteThe SQLiteDatabase.ShortColumnNames property is now deprecated.
50469Framework » AllAdded NetworkInterface.Name that identifies the human readable name of the interface adapter.
60818Framework » AllAdded JSONItem.LastRowIndex
62505Framework » AllAdded Graphics.Outline property for drawing Text outlines instead of being filled.
63086Framework » AllJSONItem now uses dictionaries and ParseJSON and GenerateJSON under the hood.
63333Framework » AllJSONItem now uses ParseJSON and GenerateJSON under the hood.
63365Framework » AllCalling PDFDocument.AddFonts is not needed anymore in order to use any font installed in the System.
63393Framework » AllIncreased contrast on the DateTimePicker when displayed in graphic mode on macOS, so the selected date is more visible against the background in DarkMode.
63491Framework » AllImproved paragraph interline in PDFDocument at any font size.
63605Framework » AllMenuItem.Enable has been deprecated with a replacement of MenuItem.Enabled.
63823Framework » AllJSONItem Names, NameAt and HasName have been deprecated in lieu of Keys, KeyAt and HasKey respectively.
63768Framework » DesktopAdded PDFGraphics.Outline to PDFDocument so it can render text in outline mode.
63792Framework » DesktopAdded PDFGraphics.ClipToRectangle to PDFDocument to provide the same behaviour found in the regular Graphics class.
63204Framework » WebSetting WebDatePicker.SelectedDate to Nil will now clear the field.
63219Framework » iOS » MobileMobileLocation now raises an event when the authorization state changes.
63239Framework » iOS » MobileThe iOS Sound class now has a Handle method which returns the underlying AVAudioPlayer object.
63260Framework » iOS » MobileAdded System.FontCount, System.LastFontIndex and System.FontAt for iOS.
8555Framework » macOSToolbar.Handle on macOS now returns an NSToolbar object pointer instead of returning 0.
63414Framework » macOSToolbars on macOS Big Sur are now in the Expanded style by default to better match previous behavior.
64126IDEiOS apps now build against the iOS 14.4 SDK.
62682IDE » Build AutomationCopyFiles build steps with a destination of "Framework" now copies those files into the Frameworks directory on iOS.
63497IDE » Menu Shortcut EditorSome menu cleanup:
  • Removed incorrect Insert->Module "M" shortcut from user Menu Editor.
  • Added Insert->Worker so it appears in user Menu Editor.
  • Added Shortcut for Project->Breakpoint->Ignore All (Opt/Alt + Cmd/Ctrl + Shift + \)
  • Added Shortcut for Insert->Computed Property (Opt/Alt + Cmd/Ctrl + Shift + P)
63622IDE » NavigatorWhen converting a property to a computed property, holding down the SHIFT key will cause only the getter to be implemented, effectively making the property read-only.
63841InstallermacOS DMG background and application folder now use the updated icon.
26 Changes

New Items

63065BuildWhen building macOS projects that contain a Worker, ARM builds now include ARM worker helpers and Universal builds now include Universal worker helpers.
63501Build Process (GoCD)IDE is now built as a Universal Binary on macOS.
62804CompilerXojoScript is now supported for macOS arm64 builds.
22602Framework » AllGraphics: ClipToRectangle, Translate, Rotate, SaveState and RestoreState are now available for Desktop/Console apps. ClipToPath now works for Desktop apps. Also added Scale method for Desktop/Console/iOS that affects the current transformation matrix.
55434Framework » AllJSONItem now supports arrays when directly converting from a Dictionary.
62795Framework » AllAdded multiple page sizes for PDFDocument, so now it is possible creating a PDF document composed with several pages of different sizes, using for that the overloaded method NextPage(w As Integer, h As Integer).
63258Framework » AllAdded ToData() As MemoryBlock method on PDFDocument class, so the user can retrieve the PDF document contents.
63384Framework » DesktopGotFocus/LostFocus events implemented for SearchField control on Desktop.
63385Framework » DesktopGotFocus/LostFocus events implemented for DateTimePicker control on Desktop.
63245Framework » MobileAdded MobileApplication.BuildDateTime
63253Framework » WebAdded WebLocation control.
63299Framework » WebAdded a command line parameter named "urllength" which allows you to increase the maximum length of a request URL from the default of 256 with a hard limit of 2048 bytes.
62521Framework » iOS » MobileJSONItem is now available in iOS projects.
63228Framework » iOS » MobileAdded UserAuthentication class to iOS framework for biometric authentication.
64063Framework » iOS » MobileiOSMobileTable.Formats now has a third value called InsetGrouped which adds support for UITableViewStyleInsetGrouped on iOS 13 and above. Earlier versions of iOS will still use the value for Grouped.
63500Framework » macOSSystem.FontCount and System.FontAt on macOS now include font family members.
59400IDE » Code EditorThe ReformatCode script context has four new methods:

- LoadDate() as String which returns a SQLDateTime of when the script was last loaded - SetStoredValue(key as String, Value as Boolean/Double/Integer/String) which stores a value which persists across script runs and reloads. - GetStoredValue(key as String, DefaultValue as Boolean/Double/Integer/String) as Boolean/Double/Integer/String which retrieves a stored value.

- ClearStoredValues() which clears the persistent data store.
63542IDE » Code EditorIn the Code Editor, the error indicator is given priority over the warning indicator when a line has both and error and a warning. In addition, the Code Editor error icon now matches the icon used in the Error panel.
63716IDE » FileIOThe IDE now follows Windows shortcuts when loading plugins.
63358IDE » InspectorWorker ProjectItemsToInclude can now be separated by spaces and commas (in addition to EndOfLine that was already supported). Duplicate entries and extra spaces are now ignored.
63340IDE » Layout EditorInline text editor now selects all text when it is initially opened.
27289IDE » MiscellaneousAdded Project->Back and Forward menu items to match toolbar and allow shortcut keys (Cmd/Ctrl-[ and Cmd/Ctrl-]).
63554IDE » MiscellaneousNew console projects now automatically have the App.Run event added.
63037IDE » NavigatorThe macOS target is no longer selectable for building on Windows & Linux.
24 New Items

Docs and Examples

63324Documentation » User's GuideOn UserGuide:Printing page, updated Graphics.StringHeight to use TextHeight.
63405Documentation » User's GuideAll references to CGI web apps and the CGI template have been removed.
61709ExamplesEddie’s Electronics desktop app now catches a KeyNotFoundException that can occur if an invalid MapBox token is provided.
62087ExamplesAdded exception handling to iOS URLConnection example project.
62818ExamplesFixed a bug in the PictureResizer example project which only manifested on double-byte systems.
63291ExamplesExample Project for iOS showing how to use System.FontCount, System.LastFontIndex and System.FontAt on iOS, including text preview with the selected font and size.
63355ExamplesImproved WordCounter Worker example so that it only accepts text files and added additional text files to increase processing load for a better demo.
54284Language Reference » DocumentationUpdated SegmentedButton sample code for resizing the control and its segments.
62095Language Reference » DocumentationThe sample code was fixed to use ExitCode instead of ErrorCode.
62798Language Reference » DocumentationDeprecated iOSSQLiteDatabase in the Language Reference.
62812Language Reference » DocumentationUpdated Arrays doc page with new methods for Add, AddAt, RemoveAt, RemoveAll, LastIndex, FirstIndex.
62831Language Reference » DocumentationAdded more examples to MobileToolbarButton.Constructor page.
62844Language Reference » DocumentationAdded missing iOS Graphics methods to docs: ClipToPath, ClipToRectangle, Rotate, RestoreState, SaveState, Translate.
62876Language Reference » DocumentationUpdated Arrays doc page to indicate that the array methods Count, FirstIndex, IndexOf and LastIndex all technically return Int32.
62899Language Reference » DocumentationClarified DeviceData and System.Device doc pages.
62980Language Reference » DocumentationUpdated UserGuide:Collections_of_Data page to use new array methods and fixed a type of “ReVar” to be “ResizeTo”.
62997Language Reference » DocumentationGraphics.Transparency page now indicates it works with desktop, web and console projects.
63094Language Reference » DocumentationFixed See Also links on JSONItem page.
63101Language Reference » DocumentationAdded missing parameter to WebPopupMenu.SelectionChanged event page and fixed example code.
63179Language Reference » DocumentationFixed examples on PrinterSetup.OpenPrinter.
63248Language Reference » DocumentationAdded PopupMenu.SelectedRow page as replacement for SelectedRowValue, which was previously deprecated.
63249Language Reference » DocumentationFixed deprecation link on Application.SleepCurrentThread page.
63298Language Reference » DocumentationFixed sample code on PrinterSetup.Settings doc page.
63304Language Reference » DocumentationAdded copy Constructors for Date and DateTime to DateTime language reference page.
63338Language Reference » DocumentationCleaned up incorrect mentions of String.Join in docs, which should instead be String.FromArray.
63344Language Reference » DocumentationUpdated MobileTextField.BorderStyle with a note to indicate that any BorderStyle other than Rounded makes the TextField content background transparent.
63367Language Reference » DocumentationFixed a couple typos in the sample code on the SMTPSecureSocket page.
63415Language Reference » DocumentationStyledTextPrinter throws now an UnsuportedOperationException on Windows.
63428Language Reference » DocumentationMediaWiki cannot handle the / character as a page link, so the / (division) links now go to a page called Division.
63433Language Reference » DocumentationThe documentation for SSLSocket now includes the methods EndOfFile, Flush, Read and Write as it supports the Readable and Writable interfaces and they are apart of those interfaces.
63459Language Reference » DocumentationUpdated Report.Run page to not use deprecated methods.
63471Language Reference » DocumentationUpdated TextUnit pages on PushButton, ListBox, BevelButton to indicate it is now deprecated for FontUnit.
63478Language Reference » DocumentationLabel doc page updated to use Text property instead of deprecated Value property.
63499Language Reference » DocumentationWebLink.URL page no longer mentions MouseUp event which is not available in Web 2.0.
63581Language Reference » DocumentationThe WebHTMLViewer page now has an entry to the Print method in the Methods section.
63585Language Reference » DocumentationClarified what gets called with Return True and Return False on MouseDown event page.
63586Language Reference » DocumentationGraphics.DrawRectangle page now refers to points rather than pixels in sample code.
63587Language Reference » DocumentationGraphics.DrawOval page now uses PenSize property.
63588Language Reference » DocumentationGraphics.PenHeight doc page marked as deprecated.
63599Language Reference » DocumentationThe Integer.FromString code example has been updated to catch the appropriate exception (InvalidArgumentException).
63671Language Reference » DocumentationUpdated UserGuide:Conditional Compilation page to use TargetWindows instead of deprecated TargetWin32.
63672Language Reference » DocumentationFixed link to User Guide on Window.Type doc page.
63753Language Reference » DocumentationAdded Text and Auto data types as de-emphasized on Deprecations page.
63804Language Reference » DocumentationRemoved unnecessary ColumnType table from ListBox.ColumnsWidths doc topic.
63906Language Reference » DocumentationFixed typo in name on ListBox.SelectedRowCount page.
63937Language Reference » DocumentationFixed a leftover usage of Dim on the Var doc page.
63946Language Reference » DocumentationTextEdit.Format page now links to ValidationMask page.
63947Language Reference » DocumentationListBox.ActiveTextControl description now mentions both TextArea and TextField.
63986Language Reference » DocumentationSQLiteDatabase now says it's available for iOS in the Language Reference.
64000Language Reference » DocumentationColor.FillColor is now documented as Desktop only.
64032Language Reference » DocumentationFixed documentation for WebApplication.SessionTimeout.
64041Language Reference » DocumentationThe TrayItem Action Event example code has been fixed so that it now compiles.
64095Language Reference » DocumentationUpdated sample code on Window.KeyDown page to fix typo.
64096Language Reference » DocumentationFixed link to UserGuide:Image Set Editor on Picture doc page.
54 Docs and Examples