Xojo 2023r3 Release Notes

Release Date: 2023-10-10

Highlights

Statistics

  • Bugs fixed: 233

  • Features added: 44

  • Documentation changes: 2

  • Examples changed: 1

IDE

New Features

  • Modified the look of ColorGroup property icons displayed in the autocomplete popup so they are unified with the rest of property datatypes (circle-enclosed). (73687)

  • Now the IDE deletes the encapsulation code (Function / Sub - End Function / End Sub) when pasting a previously copied method directly inside the Code Editor for another method. (63282)

  • Added Zoom In and Zoom Out buttons to the Documentation Window in the IDE. (73424)

  • Android: Added Shared Build Settings Destination property for Android projects. (66602)

  • Android: Advanced Android Build Settings Inspector now has a new Manifest Permissions property where the user can manually enter the name of Android permissions constants need by the app. These would generally be for permissions required by a Declare or Library and will be added to the AndroidManifest.xml file when the project is built. (71594)

  • Android: On Windows, Xojo now checks the Registry to find the location of Android Studio. If not found, the user is prompted to locate it. (73620)

  • Every OS: ColorGroup properties will display both colors now in the inspector selector. (69648)

  • Windows: The Content of the XAML Control Chooser window list has been updated to use single quotes instead of double quotes, for the convenience when copying/pasting and concatenating strings. (73656)

  • Windows: Updated the XAML Control Chooser Window for the Windows IDE. You can now preview XAML controls from this dialog and modify control properties. (73181)

Resolved Issues

  • The Interface Choose button again displays on the Inspector for the web Session object. Name and Super also appear, but are disabled. (66465)

  • Fix so the Insert toolbar button looks right again in the IDE under macOS Sonoma. (73172)

  • Fixed Run On Device bug for iOS when Xcode 15 is installed. (74073)

  • Fix. The Object icon is shown at an appropiate size in the Autocomplete popup menu. (74094)

  • Fixed an issue where right click Help in the code editor for items like ParseJSON and some others would go to the wrong page. (72372)

  • Build Step menu options will be displayed, and thus added, only when any target is selected under Build Settings section in the IDE's Navigator (this includes the contextual menu options and the Insert menu available in the Toolbar and in the main menu). (73674)

  • Fixed an IDE assertion that would occur if a ColorGroup did not have a valid representation for the project type. (73698)

  • The Color Group Editor Add button displays now all the target entries in its menu. (65750)

  • Fixed minor typo for the Tab Order Editor in the IDE. (73995)

  • When moving/duplicating lines in the Code Editor, if an entire line is selected (via triple-click or drag) then don't also move/duplicate the line below it. (73941)

  • Building for Windows ARM64 no longer incorrectly compiles methods marked as 32-bit only. (73879)

  • Fixed regression so the Company Name field is keept in the Project Chooser window. (73898)

  • Fixed disabling the Remove Color Group button in the toolbar when a representation is removed using the contextual menu option in the Color Group editor. (73836)

  • Forces the IDE theme switching for the Layout Editor on macOS. (73835)

  • Duplicating an item is now properly displayed in the Navigator when a filter is also used. (73766)

  • Avoid a NilObjectException that can occur in certain situations when using the debugger and the navigator. (73814)

  • Skip older Feedback-related prompts that could appear when selecting Help->Feature Request & Bug Reports. (72324)

  • Attempt to avoid a NilObjectException that possibly could occur when removing enum elements. (73373)

  • Attempt to avoid a very weird NilObjectException that sometimes occurs when using the Color Picker and the code editor in certain situations. (70243)

  • Attempt to avoid a NilObjectException that could occur in certain situations when closing a folder. (73428)

  • Attempt to avoid a NilObjectException that might occur in certain situations when clicking in the Navigator. (73438)

  • Attempt to avoid an OutOfBoundException that could sometimes happen when moving rows in the Navigator. (73458)

  • Fixed a bug in the IDE when entering // as the label for a new item in an Enumeration. (73587)

  • Attempt to avoid a NilObjectException that might occur when closing project windows in some situations. (73558)

  • Prevent an exception that could sometimes occur when looking up a short description from the docs. (73492)

  • Selecting a new project type in Project Chooser doesn't reset the entered values anymore for the App Name, Company and Application Identifier. (73537)

  • Android: Don't include Database project items as available to add to Android projects. (74223)

  • Android: Attempt to avoid a NilObjectException that perhaps could occur when the debugger UI was closing down while waiting to connect to the debugger. (74219)

  • Android: System.DebugLog now works in the Opening event when Android Ignore Breakpoints is turned on. (73607)

  • Android: System.DebugLog() for Android now displays its output in the IDE Messages panel on Windows. (74167)

  • Android: Multiline Label text now draws in the Layout editor more like it does at runtime. (74166)

  • Android: Prevent copying of iOS MobileScreen, MobileContainer and MobileTableCustomCell to Android projects. Prevent copying WebPage, WebDialog, WebSession and WebToolbar to Android projects. (73974)

  • Android: Turning on Ignore All Breakpoints while an Android project is running in the debugger (and has breakpoints set) no longer crashes. The Ignore setting stops the debugger from launching so turning it on takes effect the next time the project is run. (73514)

  • Android: Display a message before Android Studio folder selector appears on Windows and Linux. (73592)

  • iOS: Updated iOS Device models in the Layout Editor to include iPhone 15. (74165)

  • iOS: Now it is possible to import a previously exported MobileScreen item as text into an iOS project. (73934)

  • iOS: iOS App Icon no longer shows Android icons. Loading App Store icon from a saved project, now properly loads it back into the App Store entry instead of creating a new entry for it. (73921)

  • iOS: Now the IDE displays the proper icon for MobileDateTimePicker subclasses, both in the Navigator and when using the Edit Superclass panel. (73867)

  • iOS: Now the IDE displays the proper icon for MobilePDFViewer subclasses, both in the Navigator and when using the Edit Superclass panel. (73869)

  • iOS: Now the IDE displays the proper icon for iOSCountDownPicker subclasses, both in the Navigator and when using the Edit Superclass panel. (73870)

  • Linux: SearchField control now renders correctly in the layout editor when the control is resized. (73343)

  • Linux: Closing the GoTo Location dialog, when the autocomplete popup list is still presented, no longer crashes. (73699)

  • Linux: Guard against an OutOfBoundsException that could happen on Linux when removing a newly added Structure element. (73796)

  • macOS: The IDE doesn't hides itself under Sonoma when running the project in the debugger and the user switches to other active app before the debugged executable becomes active. (74192)

  • macOS: With Include PDB enabled, we now copy the PDB file to the build destination immediately after the Windows app is built instead of waiting on all the build steps to finish running. (73777)

  • Web: Fixed an issue that could cause the IDE to crash when working on a Web Project and closing one of the workspaces. (74170)

  • Web: Fixed a NilObjectException causing the IDE to crash on Windows, when working with Web projects, under certain circumstances. (73729)

  • Web: Only when debugging, Web applications won't close connections after a few seconds anymore, to improve the development experience. (73844)

  • Web: Fixed an issue in Linux causing the library panel to be unresponsive on Web projects. (73741)

  • Web: Fixed a WebLink issue causing the IDE to draw the preview displaying always the default color, instead of selected one. (73579)

  • Web: Web projects Library will show the SerialConnection object now, instead of the deprecated Serial one. (73707)

  • Web: Fixed an issue causing non visual Web controls to show a Left and Top property in the inspector. (73586)

  • Windows: Scrolling the Examples list in the IDE on Windows before expanding a folder does honors the correct folder. (73917)

  • Windows: The Windows Input Method Editor (IME) now appears again when activated. (73880)

  • Windows: Holding the Ctrl key, to turn off snapping in the layout editor, no longer also copies the control. To make a copy of the control you can now hold down the Alt key instead while dragging. (72971)

  • Windows: Avoid a NilobjectException that could possibly occur when pasting code into the Code Editor. (73789)

  • Windows: Activating the Ctrl+N shortcut, to present a new project dialog, while in the code editor no longer incorrectly inserts the character N in the source code. Same with any keyboard combination that is bounds to an IDE Script menu. (73706)

  • Windows: IDE no longer crashes at startup on Windows Server 2019 (or Windows 10 Enterprise LTSC). Also, using DesktopXAMLContainer will now raise a PlatformNotSupportedException on this version of Windows. (73673)

Framework

New Features

  • Added SelectedRowText property and deprecated SelectedRowValue for PDFComboBox, PDFListBox and PDFPopupMenu. (73401)

  • Added Set class. (71119)

  • Added AutoCalculateYAxis As Boolean property to DesktopChart and MobileChart (True by default) so the user can decide if the Y axis start at 0 or not when the chart is set to Line or Bar modes. (72389)

  • Added Ed25519 algorithm to Crypto module. (68012)

  • Android: Added Boolean.FromString(). (73653)

  • Android: Color.FillColor and TextColor now adjust their color based on dark mode or light mode, but only if SupportsDarkMode is turned on. (72838)

  • Android: Added MobileTextField.ReturnPressed event. (70111)

  • Android: Added new MobileScreen.HasBackButton as Boolean property (design-time only). When True, a back button appears in the left of the top toolbar for the screen. (73316)

  • Android: Added MobileHTMLViewer events for Android: DocumentBegin, DocumentComplete, CancelLoad, Error, NewWindow, DocumentProgressChanged, TitleChanged. (71804)

  • Android: For Android, added MobileHTMLViewer.ExecuteJavaScript() method, JavaScriptResult event and JavaScriptRequest event. ExecuteJavaScript is asynchronous and its result appear in the JavaScriptResult event. To call the JavaScriptRequest event, use xojo.execute() in the JavaScript code. A method name and up to 5 parameters can be passed back to Xojo. (70949)

  • Android: Added MobileHTMLViewer.CanGoBack, CanGoForward properties and GoBack, GoForward methods for Android. (68385)

  • Android: Added MobilePopupMenu control for Android. (71507)

  • Android: Added AllowSpellChecking property to MobileTextArea and MobileTextField on Android. (69130)

  • Desktop: Added SelectedRowText property and deprecated SelectedRowValue for DesktopListBox and DesktopPopupMenu. (73398)

  • Every OS: Added new FolderItem methods for zipping and unzipping archives:``` * Zip(contentsOnly As Boolean = False, compression As ZipCompressions = ZipCompressions.Normal) As FolderItem * Zip(destination As FolderItem, contentsOnly As Boolean = False, compression As ZipCompressions = ZipCompressions.Normal) As FolderItem * Unzip() * Unzip(destinationFolder As FolderItem)```Zipping with contentsOnly (True) will compress all files in the folder without adding the root folder into the Zip file. Zipping to a destination file will create/overwrite the destination file, otherwise if the destination is a folder then the compressed zip file will be created in the destination folder. (71276)

  • Every OS: You can now iterate through all the DatabaseColumns in a DatabaseRow using For Each. (73811)

  • Every OS: DesktopLabel: adding a new Event handler now defaults to Opening instead of AcceleratorKey. (73692)

  • Every OS: Added LastColumnIndex property to DatabaseRow, which returns the zero-based index of the last column in the row. (73810)

  • iOS: Fixed MobileScreen.TabIcon on iOS so it is working properly when the Picture is set at runtime. (73924)

  • iOS: Added GeoFencing feature to MobileLocation on iOS. (73768)

  • iOS: Added Visits feature to iOSLocation. (73769)

  • iOS: Added TargetMobile directive that is True for both iOS and Android. (72998)

  • iOS: Added FocusReceived and FocusLost Event Handlers to MobileTextField and MobileTextArea on iOS. (45577)

  • iOS: Now it is possible to retrieve a PDF document page as a Picture from MobilePDFViewer control on iOS. (73581)

  • iOS: Added 'DateTime.AddInterval(interval As DateInterval) As DateTime' method so it is available on Desktop, iOS and Web; so it is unified with Android. (73651)

  • Web: Added Objects iterator to DesktopWindow, WebPage, MobileScreen. (73762)

  • Web: Added LocationSelected event and RemoveLocation method. Pressed event won't have a location parameter anymore. (74063)

  • Web: Added WebImageViewer.DisplayMode to control how the image will be rendered at runtime. (72856)

  • Web: Deprecated SelectedRowValue in WebComboBox and WebPopupMenu in favor of SelectedRowText. (73400)

  • Web: Deprecated WebListBox.SelectedRowValue in favor of WebListBox.SelectedRowText. (73399)

  • Web: WebMapViewer supports more map tile providers now. Raster and vector tiles are supported. (23589)

  • Windows: Updated to use ICU 73.2 (73193)

  • Windows: DesktopXAMLContainer: localized string constants can now be used when binding a property using {XojoBinding} (73591)

  • Windows: DesktopXAMLContainer: the Date property of a CalendarDatePicker is now settable, instead of it being read-only. (73576)

Resolved Issues

  • DesktopCanvas: the MouseUp event now fires consistently, behaving like it did before with the deprecated Canvas control. (74066)

  • Fixed JSONItem throwing an exception when using Lookup method after emptying all its contents with RemoveAll. (73787)

  • Deprecated RowValueAt for PDFComboBox and PDFPopupMenu in favor of RowTextAt (for consistency among platforms). (73780)

  • Avoid internal BinaryStream exceptions. (70993)

  • Fixed PDFGraphics.DrawPicture honoring the destination Width / destination Height when all the possible parameters are provided for the method. (73455)

  • Android: GenerateJSON no longer skips over items with nil/null values. (74307)

  • Android: Fixed an issue when overriding certain mobilescreen framework properties. (74149)

  • Android: Controls are resized if necessary when a bottom toolbar is added at runtime. (74258)

  • Android: Fixed an exception that could occur when using a container returned with ContainerAt() from within the MobileTabPanel.PanelChanged event when not on the first panel. (73743)

  • Android: Introspection.TypeInfo.Name and BaseType properties now return correct information for objects within a Variant. (74130)

  • Android: String.NthField() and String.ToArray() are now case-insensitive to match other platform behavior. (74006)

  • Android: To match behavior on other platforms, strip off trailing ; from the number format string as that is not valid syntax for ICU formatting. (74182)

  • Android: Calling MobileScreen/MobileContainer.RemoveControl with a MobileUIControl no longer causes an Android compile error. (74141)

  • Android: MobileToolbarButton.Types.Search now uses a more traditional looking icon. (74156)

  • Android: Calling MobileMessageBox.Show(String) shared method from an instance no longer causes an Android compile error. (74159)

  • Android: MobileTabPanel.AddPanel() now properly adds the container when provided. (73738)

  • Android: Variant.ArrayElementType now returns the correct values. (74103)

  • Android: Variant.Equals() now works with Boolean and Color types. (74101)

  • Android: Using Variant.Equals with incompatible types now returns False instead of crashing with an internal exception. (74102)

  • Android: A variant containing a date string will now convert using DateTimeValue. (74097)

  • Android: To match behavior on other platforms, Variant.DateTimeValue will treat a number as the SecondsFrom1970 to convert it to a DateTime. (69310)

  • Android: To match behavior on other platforms, the encoding of a number converted to a string using Variant.StringValue is now set to ASCII. (74038)

  • Android: Fixed an issue when using Introspection.GetType on Size. (74021)

  • Android: ParseJSON() now uses and returns a case-sensitive Dictionary. (74079)

  • Android: Fixed an issue with Variant.IsNull not returning true when used with data that was created using ParseJSON. (74076)

  • Android: Controls at the bottom of a screen no longer get covered by the bottom toolbar when present. (73923)

  • Android: Variant.BooleanValue now returns True when it contains the string true regardless of its case. (74007)

  • Android: Attempting to use design-only properties for ThemeDarkColor, ThemeLightColor and ThemeMediumColor no longer cause a compiler error, but do raise an AndroidException. (73563)

  • Android: URLConnection response headers are now available when using SendSync(). (73609)

  • Android: MobileDatePicker button now works better with z-order. (74005)

  • Android: String *Bytes method now return a string with the same encoding as the source string. (74020)

  • Android: Calling MobileScreen.Close (or other MobileScreen framework methods) for a different screen no longer causes a compile error. (73829)

  • Android: JSONItem.IsArray is now a method on Android to match other platforms and prevent an Android compile error. (73904)

  • Android: MemoryBlock equality on Android now properly compares byte contents. (73994)

  • Android: Fixed a compile error that would occur when using MobileLabel.Alignments, MobileTextArea.Alignments and MobileTextField.Alignments enums instead of MobileTextControl.Alignments enum. (73951)

  • Android: PopupMessage is better positioned at bottom of screen and no longer overlaps navigation controls. (73990)

  • Android: Methods called via introspection invoke will now properly raise exceptions. (73989)

  • Android: String.ReplaceBytes and ReplaceAllBytes now properly handle case sensitivity. (73964)

  • Android: Fixed an issue when calling Dictionary.HasKey from an Extension method. (73949)

  • Android: System.Device.Name should now return values on more devices. (73955)

  • Android: Global Ubound function now works on Android for better compatibility with code from other project types. (73956)

  • Android: If URLConnection result has no content type, the error event is no longer called. Instead the data is treated as binary. (73943)

  • Android: For Each on an empty RowSet no longer causes an infinite loop. (73726)

  • Android: URLConnection now properly processes results for all HTTP status codes, not just 200. (73919)

  • Android: System.Device.Name should now return a result on more Android devices. (73843)

  • Android: Calling shared framework methods from instances no longer causes a compile error. (73734)

  • Android: URLConnection on Android now properly recognizes the encoding on incoming textual data. (73669)

  • Android: Fixed an issue when using the Introspection.AttributeInfo.Value property. (73686)

  • Android: Fixed an issue with certain calls to Introspection.PropertyInfo.Value. (73683)

  • Android: AndroidMobileTable.SelectedRowIndex now matches similar behavior on DesktopListBox. (73657)

  • Android: Changed MobileToolbar.AddButton() parameter from item to button to match iOS. (73649)

  • Android: Added missing MobileToolbarButton.Type property. (73650)

  • Android: JSON.Compact property now shows that it defaults to True in the syntax help. (73661)

  • Android: Added Str(value As Currency) method to match other platforms. (73680)

  • Android: Added Str(value As Single) method to match other platforms. Keep in mind that Xojo Android does not use Single internally. (73681)

  • Desktop: Deprecated DesktopPopupMenu.SelectRowWithValue and added DesktopPopupMenu.SelectRowWithText for API consistency. (73873)

  • Desktop: Deprecated RowValueAt for DesktopPopupMenu in favor of RowTextAt (for consistency among platforms). (73779)

  • Every OS: SQLiteDatabase: adding a new DatabaseRow, with a DatabaseColumn that is assigned a PictureValue, now correctly treats Pictures as binary data and stores it properly. (73996)

  • iOS: Fixed MobileChart exposing KeyDown and TextReceived events from its parent class. (73688)

  • macOS: Selecting an item from a ComboBox using the Enter key on macOS does work properly now, updating the text as it does when using the Return key. (73696)

  • macOS: Fixed using ColorGroup(currentControlTint) so it doesn't crashes the app, returning the expected color instead on macOS. (73723)

  • Mobile: Changed Page parameter name to File on overloaded DesktopHTMLViewer.LoadPage method for consistency with Mobile. (73568)

  • Web: Fixed a ContextualMenu issue causing some menus to not be able to be displayed once another contextual menu was closed. (74253)

  • Web: Fixed a WebListBox performance regression affecting tables with a large amount of columns. (73575)

  • Web: We've reviewed web control and views to enforce our text casing code style in methods and events signatures. (73985)

  • Web: WebSession.HashTag and WebSession.HashTagChanged were renamed to WebSession.Hashtag and WebSession.HashtagChanged respectively. (67280)

  • Web: WebListBox.Indicator property is now supported. (64025)

  • Web: Fixed a WebSegmentedButton issue causing some styles, like font size and color, to be ignored. (62727)

  • Web: Fixed WebTabPanel and WebPagePanel issues that were causing their children to not be redrawn when making them visible. (73152)

  • Web: WebMenuItem.Enabled will work now, when being used as part of a WebToolbarButton.Menu. (64607)

  • Web: Adapted WebToolbar internally to the latest Bootstrap 5 HTML syntax. (73980)

  • Web: Added missing CompatibilityFlags in some Web specific classes that shouldn't appear in other project types. (73643)

  • Web: Fixed WebMessageDialog alternate button style, it will appear as a button now. (73850)

  • Web: Assigning a WebStyle also supports removing attributes now. (73445)

  • Web: WebDialogs can be resized at runtime now. (66829)

  • Web: Fixed a WebUIControl causing Shown and Hidden events to not be fired if the control was also being resized. (73742)

  • Web: Fixed a WebChart issue causing circular charts to display the scales grid. (73730)

  • Web: Fixed a WebButton issue when updating any property, causing its WebMenuItem to not be shown anymore. (73727)

  • Web: Fixed a WebToolbar issue causing buttons to fire the Pressed event, even when they were disabled. (73700)

  • Web: It's possible to set a 100% black color on WebLabel now. Also, the default color can be selected now from the color picker on web controls. (73583)

  • Web: Fixed a WebFileUploader issue preventing the control from being enabled again, once disabled. (73601)

  • Web: WebPopupMenu elements won't be draggable anymore. Those links aren't supposed to be dragged. (73573)

  • Web: WebMessageDialog.Show won't display a null on the page anymore, when being called on a page instance. (73572)

  • Web: WebListBox.SearchCriteria will no longer throw exceptions after removing data. (73469)

  • Web: WebMapViewer can now display multiple locations (markers) (61706)

  • Web: Deprecated RowValueAt in WebCombobox and WebPopupMenu, please use RowTextAt. Also deprecated WebPopupMenu.SelectRowWithValue in favor of SelectRowWithText. (73782)

  • Windows: Enabling the MDI Windows build option now works properly when app is built for Windows ARM64. (74120)

  • Windows: Fixed a potential crash when a window is closing and the main event loop gets triggered again (typically by a call to DoEvents) before the window is finally closed. (70821)

  • Windows: Fixed encoding issues for DesktopSearchField control on Windows. (73916)

  • Windows: Fixed DesktopSearchField clearing the text under certain circumstanceson Windows when clicking on the control. (73246)

  • Windows: DesktopListBox at 225% DPI scale no longer exhibits areas (in between rows/columns) that require repainting. (73708)

  • Windows: URLConnection: assigning a new value to an existing RequestHeader now replaces the value on Windows/Linux, matching the behavior on other platforms. (73705)

  • Windows: GroupBox caption now updates properly when switching themes. (70866)

  • Windows: DateTime no longer incorrectly reports Mexico City timezone as UTC/GMT -5 instead of the correct -6, since it it stopped using daylight savings time. (73143)

Compiler

New Features

  • Android: Added the ability for declares to call direct Kotlin in certain cases when needed. (73987)

Resolved Issues

  • Android: Fixed an issue where code following a #ElseIf and certain #If conditions may not be properly included. (74324)

  • Android: Fixed issues with multiple/simultaneous IsA comparisons, and certain subclassed mobilescreen properties. (74305)

  • Android: Fixed an issue where in certain cases a method-ending finally (without try) would not get called. (74161)

  • Android: Fixed an issue when evaluating certain conditions containing multiple IsA. (74146)

  • Android: Fixed a spurious exception when calling GetType on a control parent. (73624)

  • Android: Fixed an issue with certain variant/object iterators and setting values to nil. (74142)

  • Android: Fixed an issue when comparing object parameter values to certain array types. (74140)

  • Android: Fixed an issue with certain expressions and inline If. (74138)

  • Android: Fixed an issue when using a boolean operator with certain variants. (74133)

  • Android: Fixed an issue when casting certain control/container properties on a mobilescreen. (74121)

  • Android: Fixed an issue with a method of a same name on a subclass with only a default value as a difference. (74118)

  • Android: Fixed an issue when shadowing a property of the same name in a subclass. (74117)

  • Android: Framework property/variable names are now shown correctly in the debugger. (73608)

  • Android: Fixed an issue when casting certain objects to interfaces. (74106)

  • Android: Fixed an issue when assigning to certain properties of a container subclass using me. (74100)

  • Android: Fixed an issue with certain embedded #If/#Else combinations. (74092)

  • Android: Build setting for optimization for Android now only changes the number of optimization passes that are done: 1 for Default, 3 for Moderate, 5 for Aggressive. (73617)

  • Android: Fixed an issue when using Assigns/Extends/ByRef/ByVal in a Delegate. (74089)

  • Android: Fixed an issue when using Assigns/ParamArray/Extends/ByRef/ByVal in an Event definition. (74084)

  • Android: Fixed an issue with classes that use global as part of the super. (74083)

  • Android: Fixed an issue when assigning nil from a variant objectvalue. (74082)

  • Android: Fixed an issue when comparing certain variant values against numeric literals. (74080)

  • Android: Fixed an issue when calling a shared method from a class instance. (74071)

  • Android: Fixed an issue when overloading certain methods with an Object then Variant parameter. (74067)

  • Android: Fixed an issue with certain Protected Extension methods on a module when used from the same module. (74065)

  • Android: Fixed an issue when Catch was used in certain situations without Try. (74060)

  • Android: Fixed an issue when passing Nil to a CString method parameter. (74047)

  • Android: Fixed an issue where a Global Method could cause a compilation error with a Protected Method of the same name in a nested module. (74046)

  • Android: Fixed an issue where a Global Constant could cause a compilation error with a Protected Constant of the same name in a nested module. (74045)

  • Android: Fixed an issue where an Enumeration with the same name/same scope as a Constant did not display the appropriate message. (74044)

  • Android: Fixed an issue where a Module contains a Constant and Method of the same name. (74043)

  • Android: Fixed an issue when calling a shared method from a class within a module via Self. (74041)

  • Android: Fixed an issue with dotted delegate references as parameter types, and with certain references to enumerations in global classes within a module. (74037)

  • Android: Fixed some areas where a compilation error could persist even if the delegate/static involved was deleted from the project. (74036)

  • Android: Fixed an issue where an invalid type in a Constructor may not show the appropriate message. (74035)

  • Android: Fixed an issue where certain methods with an Assigns overload may not be called correctly. (74030)

  • Android: Fixed an issue when initializing certain variables with a New Global type. (74023)

  • Android: Fixed an issue where an out of range numeric literal that isn't valid on Android/JVM did not display an appropriate message. (73998)

  • Android: Fixed an issue when initializing a variable of a Class type where that Class has the same name as a Method. (73997)

  • Android: Fixed an issue where directly accessing certain controls on MobileScreen subclasses could cause a compilation error. (74028)

  • Android: Fixed an issue when comparing two nil objects with Is. (73988)

  • Android: Fixed an issue with certain uses of nested #Else. (73986)

  • Android: Fixed an issue when casting certain Introspection Objects to certain user classes. (73984)

  • Android: Fixed an issue when assigning a Variant to an Introspection type. (73981)

  • Android: Fixed an issue with evaluating IsA in a parenthesis for assignment. (73979)

  • Android: Fixed an issue when using IsA with an Object and a Boolean operator. (73977)

  • Android: Fixed an issue with Objects/Variants and Boolean operators while using Is. (73976)

  • Android: Fixed a compilation error when a value might change in a For Each loop. (73958)

  • Android: Fixed an issue when using a Variant variable in a For Each with an Array of a different type. (73957)

  • Android: Fixed an issue where an appropriate error would not be displayed when accessing a control from a non-layout MobileScreen. (73918)

  • Android: Fixed an issue where trying to immediately assign a value to a Nil Dictionary may not throw the appropriate exception. (73937)

  • Android: Fixed an issue when using a Boolean comparison with certain methods that return a Variant and use BooleanValue. (73930)

  • Android: Fixed an issue where an error was unclear about the re-use of a Global computed property name. (73929)

  • Android: Fixed an issue when calling certain methods with a ParamArray Variant parameter. (73925)

  • Android: Fixed an issue when using Global with Introspection. (73837)

  • Android: Fixed an issue with Redim and using another Array value as the new size, certain Event Definitions that return a Boolean, the use of Array function when initializing a variable and calling certain constructors inside, evaluating the Boolean return value of certain Event Definitions, using Return with a comparison of two Variants from certain methods, using the Array function with a constructor and other types while setting a Variant array, certain methods with a Variant parameter that return a Boolean, and comparing numerical values against certain methods that return a Variant. (73812)

  • Android: Fixed an issue when subclassing certain framework classes with a constructor with no parameters, fixed an issue when calling certain methods that have more than 2 overloads with Variant parameters, and updated the reserved word list for enums. (73809)

  • Android: Fixed an issue with certain Event definitions that have parameters with default values. (73783)

  • Android: Shows a clearer message when trying to define a Delegate with a ParamArray. (73806)

  • Android: Fixed an issue when creating an Extension Method for Object. (73805)

  • Android: Fixed an issue with IsA and Global references. (73803)

  • Android: Fixed an issue with certain Delegates that have Object type parameters. (73802)

  • Android: Fixed some issues with the use of multi-dimensional Variant arrays. (73792)

  • Android: Fixed an issue with certain delegates that define default parameter values. (73784)

  • Android: Fixed an issue when returning a private Class from a Module Method that has the same name as a Class defined up the chain. (73775)

  • Android: Fixed an issue when passing a Nil value to a CString Declare parameter. (73578)

  • Android: Fixed a compilation issue with an empty Select Case. (73720)

  • Android: Fixed an issue with certain constants that have no defined type but a String default value. (73716)

  • Android: Fixed an issue when creating a Module method that Extends an Object Array. (73685)

  • Android: Fixed an issue when using a Variant-returning function during variable initialization with certain types. (73684)

  • Android: Fixed an issue with certain String properties that contain default values with certain quote characters. (73676)

  • Android: Fixed an issue with RaiseEvent and event definitions that are a single character. (73670)

  • Android: Fixed an issue when casting certain MobileControls to a MobileContainer. (73626)

  • Android: Added additional logging and messaging to help identify the Could not find outputs folder error that occurs on some Windows installations. If you continue to run into this, please create a new Issue with the details. (73619)

  • Android: Fixed an issue with the Global keyword when used inside of a GetTypeInfo call. (73623)

  • Android: Fixed an issue with AddHandler and certain framework classes on MobileScreens. (73614)

  • Android: Fixed an issue with certain uses of Exit For. (73598)

  • Android: Fixed an issue when initializing a Variant array variable with the Array function while passing in certain methods. (73590)

  • Android: Fixed an issue with certain methods with Variant parameters that include a description. (73574)

  • Web: Fixed compiling Web projects when optimization is set to Aggressive. (69100)

  • Windows: Windows IDE: no longer throws a failed assertion when quitting the IDE after many debug runs. (73732)

Documentation

Resolved Issues

  • ServiceApplication now correctly indicates that it's only compatible with Windows. (72928)

  • Web: WebSDK Documentation.pdf includes the render method that was missing in Browser Side Code section. (63379)

Examples

Resolved Issues

  • Plugins SDK: updated EyeControl plugin example project to be API 2.0 compatible. (73593)