RemObjects Elements v12.0.0.3071
Released: Apr 4, 2026
v12.0.0.3071 中的更新
特性
- Core
- Debugger/.NET: Added support for boolean operators.
- Android: B0undle tool updated to 18.3.
- Android: Added new Wear OS project templates.
- Delphi Compatibility: Added support for {$IF Declared(X)} in legacy preprocessor.
- Fire & Water
- CodeBot: Added a new replaceSymbol function.
修補程式
- Core
- Android Templates: Visual Studio asks to choose Target Framework, which is not applicable.
- Android: Fixed Android Sample Projects for build and deployment issues.
- Cocoa: InstanceType-inferred variable cannot be reassigned.
- Debugger/Echoes: BreakpointID isn't set correctly in x86 mode.
- NRE when trying to Go to Definition inside a directive.
- Raw strings: line 'numbersfor' errors sometimes were off.
- Refactor: doesn't find all vars.
- File-scoped must symbols use different mangling on Java ($ not <>).
- Reloading references fails after they were rebuilt.
- N13 “Method CreateFromFile exists, is there a semicolon missing?” error with linebreaks in method call.
- E26513: Wrong error code (E271 custom error) for missing type in method declaration.
- Android: Fixed "obsolete" warning in the Android’s Tabs app template.
- Android: Set Android min SDK in the project settings.
- CC regression: Insert text include "in " when namespace is inserted.
- HI: don't emit default namespace for each type, for codegen option.
- Island/Delphi: duplicate symbol: __unnamed_1 at building island/Delphi app -- Use InternalLinkage for the delphi type name in GenerateTypeInfoFor.
- CC: DisplayText had changed to include the namespace, leading to duplicate info.
- CM: NRE in GetShortName for method having array result.
- NRE in Go to Definition.
- Change nested type name separator to "+" (to match ToString).
- Confusing error locations for prematurely terminated raw string.
- Debugger/Island: Get Locals fix.
- Debugger: CLR: Error when trying to call a non-static member on TypeValue self.
- Debugger: CLR: fixes for indexer evaluations.
- Debugger: Island/Darwin Release build doesn't break on exceptions.
- Debugger: Log exceptions raised when reading debug files.
- Debugger: NRE when evaluate anonymous method (not supported for now though).
- Delphi Compatibility: $ZEROBASEDSTRINGS directive is now ignored for OFF, and errors for ON.
- Delphi Compatibility: const Empty: TEmpty = () recognised as empty named-field record init.
- Delphi Compatibility: const Lambda: Func<Integer> = () -> 99.
- Delphi Compatibility: deprecated directive’s message was ignored.
- Delphi Compatibility: Allow 'label' section after 'var' section (while still allowing 'label' as a variable name).
- Delphi Compatibility: Fix for include search path being tied to legacy preprocessor; allow relative include search path.
- Delphi Compatibility: Handle goto label inside case statement.
- Delphi Compatibility: Ignore additional preprocessor directives: INLINE, LEGACYIFEND, DEFINITIONINFO, J+/J-, O+/O-, T+/T-, X+/X-, A1-A16.
- Delphi Compatibility: Warn if enum and label names shadow/duplicate).
- Delphi import: cleaner exception type.
- Installer: Reset files association to defaults after Elements deinstallation.
- Internal: Adjustments to “E27569: C#: inconsistent initialization for out vars in Cocoa vs .NET”.
- NRE fix (ExactBefore and ExactAfter could be nil).
- Oxygene Delphi Compatibility: absolute keyword (Island, Echoes, Toffee; not implemented for JVM).
- Oxygene Delphi Compatibility: label keyword recognised after var/const (was interpreted as var/const name).
- Oxygene Delphi Compatibility: weak keyword/type disambiguation.
- Oxygene Delphi Compatibility: adjust DCM-gated keywords: Oxygene allows initialization/finalization, cdecl/stdcall (supported for external methods), overload (doc-ed as ignored). 'packed' is DCM, use [Packed].
- Oxygene Delphi Compatibility: Allow accessing @TType.InstanceMethod (static type, not an instance) as a method pointer.
- Oxygene Delphi Compatibility: Allow cast from method pointer to pointer and back (requires DCM; unsafe in Echoes).
- Oxygene Delphi Compatibility: Function name can mean function address in DCM mode (missing @).
- Oxygene Delphi Compatibility: Legacy Preprocessor: avoid mutating types.
- Oxygene Delphi Compatibility: Legacy Preprocessor: can resolve sizeof() for compiler inbuilt (e.g., Integer, Pointer) and referenced types (e.g., TMethod).
- Oxygene Delphi Compatibility: Legacy Preprocessor: Support SizeOf(pointer).
- Oxygene Delphi Compatibility: Pointers to functions implicitly convert to untyped Pointer in DCM mode.
- Oxygene Delphi Compatibility: Support $MESSAGE directive (and ignore the $WARNINGS and HINTS directives).
- Oxygene Delphi Compatibility: support (field: @func) const init syntax in DCM.
- Oxygene Delphi Compatibility: Support self-referential typed constants (@ConstName.Field in own initializer).
- Oxygene Delphi Compatibility: Tweaks for generic and non-generic types of the same name.
- Oxygene: packed is back as a normal keyword (used often).
- Oxygene: bad reformat.
- Oxygene: parser fixes for Delphi compatibility.
- Templates: New Android Tabs-based App added.
- VS: Internal error when evaluating "x.Where(b-> b = 'a')".
- C#: inconsistent initialization for out vars in Cocoa vs .NET.
- Fire & Water
- Show hints in jumpbar drop-down list.
- Water: CTRL+D window is sometimes too small (regression).
- Water: show full file path via hint.
- Water: when Water is in maximize state, an auto-hidden taskbar cannot be shown.
- Auto-fix is applied several times for files in shared project.
- CodeBot: Analysis for selection didn’t use proper line numbers.
- CodeBot: Minor tweaks for issues identified by Codex.
- CodeBot: re-format code inserted by CodeBot.
- CodeBot: run some editor-AI in the background and not the main chat.
- CodeBot: Some internal cleanup & better prompt for file analysys.
- Context menu cleanup..
- Context menu option to open “Intermediate Folder”.
- Context menu “Copy Path" on References only copied the name.
- Debugger console: thread frame.
- Debugger console: option to collapse single-letter commands (efg tfl for thread frame list).
- Debugger: handle/highlight which thread is “current” dynamically, based on the current stack frame.
- Editor: packed should be a regular keyword, not DCM.
- Editor: Allow CC popup to grow further to the left, when invoking CC near the right edge.
- Editor: CC error messages parsed badly when the filename/path contained parentheses.
- Editor: CC: types from unused namespaces showed the namespace twice.
- Editor: Color fix for Strings in white theme.
- Editor: Detect DelphiCompatibility for highlighting if file has no active target but the setting is set project-wide.
- Editor: highlight current type too, if available.
- Editor: NRE proofing for the current block detection code.
- Editor: Regression: cannot copy message popup with Cmd-C.
- Editor: Shortcuts/menus to copy current type/block/member.
- Exception logging proofing.
- Extended Option-Cmd-Up/Down message navigation to build log.
- Fire: CC popup is one pixel too small, causing scrolling/jitter.
- Fire: Menu cleanup.
- Fire: Restructured the Debug menu to match previous changes to Water.
- Fire: Show message navigation commands in the menu (Water already did). Also added proper validation to them.
- Generate Code from .RODL could hang in some cases.
- Hide "empty" folders in the project tree, if all their files are in other virtual folders (regression: don't hide empty folders that didn't have virtual files.
- If a project/target has more than one output, show the “Reveal Output _Folder" menu, instead of disabling it.
- Island/Delphi: allow specifying just "Delphi" w/o number to target the latest available version.
- Logging for Certificate filtering (for Jeremy ;).
- Made the per-target target “Manage References" sheet easier to get to in multi-target projects, if the current node is associated with one of the targets.
- NRE fix in desiredDefaultArchitectureForConfiguration.
- Project Settings: Crash regression for Toffee/iOS.
- Project Settings: Don't show unsupported architectures in picker for Island/Delphi (i.e. Windows/arm64 for Delphi 12 and below).
- Project Settings: Don't use unsupported local device architecture as the default/desired architecture for Island/Delphi.
- Project Settings: Settings tweaks/cleanjup for Delphi Compatibility.
- Project Settings: Sort architectures properly and consistently (best first).
- Regression: Island/Android defaulted to wrong (local computer) architecture.
- RO/DA: Connect button should enable as soon as a valid URL is typed.
- RO/DA: Don't generate _Invk for .remoteRODL files, even if the project uses Server.dll.
- RO/DA: Don't generate ServerAccess file when using local RODL file.
- RO/DA: Fix the Connect button and Browse dialog in Connect To Remoting SDK Server.
- RO/DA: Newly generated _Intf files were (sometimes?) creating an implicit Target.
- Show nested types in the types tree.
- The type member dropdown was not always sorted consistently.
- Water: allow filter/search in Exceptions Manager.
- Water: avoid Internal exception when the webview for Codebot was accessed before being fully initialized.
- Water: can't open .elements/.sln if it was specified w/o full path in the command line.
- Water: CodeCompletion message "no match" has the wrong size.
- Water: CTRL+D window is sometimes too small.
- Water: don’t capture image for exception sheet, as that hangs (sometimes?).
- Water: Dropdown list for project creation style fixed.
- Water: Fixed a duplicate separator in the Target context menu.
- Water: hide "Open in Service Builder" button for .remoteRODL files.
- Water: Improved color for tree view disclosure triangles.
- Water: NRE closing/switching to another project while the current project is debugging.
- Water: Problems with syntax highlight in XML files.
- Water: show full file path in treeview hint.
- Water: some missing icons in the jumpbar.
- EBuild
- Android: bundletool updated to 18.3.
- Delphi Project Import: avoid empty architecture in settings.
- Delphi Project Import: reference Vcl or Fmx automatically if needed.
- Delphi Project Import: Set better default uses prefixes for Windows.
- Delphi Project Import: Set generic "Delphi" SDK version to always use latest.
- Delphi Project Import: Support for Windows/arm64.
- Delphi Project Import: Tweaks; enable Island/Delphi mode only for supported platforms.
- Expose OutputFolder to FinalOutput.xml.
- Ignore "empty" architectures resulting from a leading or trailing semicolon in the setting.
- Island/Delphi: Allow specifying just "Delphi" w/o number to target the latest available version.
- Island/Delphi: More clear errors when trying to build for a platform not supported for Delphi.
- Island/Delphi: Support for importing Windows/arm64.
- Island/Delphi: support for importing Windows/arm64 if present (wip, disabled).
- Island: fixes for renamed debug symbol cache files in macOS 26.4.
- Provide IntermediateFolder in FinalOutput.xml.
- Set UseLegacyPreprocessor to true when importing Delphi & Lazarus projects.
- Sort supported architectures properly and consistently (worst to best/newest).
- Island Delphi Support
- DelphiExtended80: Added ToString method and updated Exponent, Fraction, and Sign properties for improved clarity.
- Implicit casts from integers, floats and TDateTime to Extended.
- Keywords: change 'packed' (Delphi compatibility keyword) to '[Packed]' attribute.
- Made all Extended casts implicit.
- Operators for concatenating char+string.
- Support for Windows/arm64.
- Elements RTL
- Add a constructor withCapacity to the Queue class.
- Use CallingConvention attribute instead of stdcall directive.
- Island RTL
- Don't optimize Island RTL for Windows, until we fix the index out of range issue.
- IslandRTL: change 'packed' keyword to '[Packed]' attribute (packed is DCM-only).