Quantcast
Channel: Developer Express Inc.
Viewing all articles
Browse latest Browse all 2370

VCL — Year-End Roadmap (v24.2)

$
0
0

The following list outlines VCL UI component (Delphi & C++Builder) features/capabilities we expect to ship in December 2024.

Before I detail our year-end VCL Roadmap...if you have not yet done so, please take a moment to review What's New in v24.1 (our last major VCL update) and submit feedback using the related survey. Your survey responses (both in the What's New and in Roadmap posts such as this) help us better understand your needs/concerns and allows us to make more informed development decisions. As always, thanks to everyone who has already submitted feedback/suggestions.

Disclaimer: The information contained within this blog post details our current/projected development plans. Please note that this information is being shared for INFORMATIONAL PURPOSES ONLY and does not represent a binding commitment on the part of Developer Express Inc. This blog post and the features/products listed within it are subject to change. You should not rely or use this information to help make a purchase decision about Developer Express Inc products.

C++ Builder 64-bit Compiler and Linker

We expect to support modern C++ compiler-related features in our v24.2 release cycle. For technical information in this regard, please review the following: second Behind the Build webinar and documentation on upgrading with key things to know. Let me also quote https://blogs.embarcadero.com/the-new-clang-toolchain-in-cbuilder-12-1/:

The new toolchain targets Windows 64-bit Intel apps, and is based on Clang 15, with a new STL, a new C++ runtime, and uses the Windows Universal C Runtime (UCRT.) It has a new linker, and uses the COFF and PDB object and debug file formats.

All binaries (the compiler, linker etc) are 64-bit EXEs, meaning they can handle large memory requirements – and you’d be surprised how often this is needed for C++. This even includes when compiling in the IDE, where we call out to the external process.

Deprecation of XE7 and XE8

For more information about this change (in our v24.2 release cycle). refer to following: The DevExpress VCL installation no longer supports XE7 and XE8 of the RAD Studio Delphi and C++Builder IDE.

Updated Cloud Integration

With v24.2, we will update existing Cloud API integrations and switch to newer or replacement APIs, where applicable. These changes will impact the following:

Enhanced Visual Testing

New DevExpress VCL Skins such as WXI and WXI Compact (with multiple palettes) and the need to test environments using various DPI and monitor setups (for instance, multiple monitors with different DPI settings) complicated internal testing processes. Some things that could be tested manually (or with simple unit tests) in the past are simply too time consuming today.

In our next major release cycle, we will fine-tune internal procedures/systems to test existing/new features more efficiently. This will include additional screenshot-based tests for our demos and internal test apps for a variety of operating systems, display resolutions and configurations.

Accessibility Enhancements

As you may have noticed, accessibility has been one of our main priorities over recent release cycles. For the VCL, we created a new Microsoft UI Automation (UIA)-powered engine and base component API/infrastructure for ongoing accessibility-related enhancements in v24.1. We also added support for a few basic controls such as buttons and editors (learn more).

In our next major update (v24.2), we expect to introduce the following accessibility-related enhancements for the following unsupported components:

  • Form layout manager (including layout groups, tabs, etc.)
  • Navigation and menu (primary usage scenarios when using our Ribbon and standard toolbars)
  • Other simple data editors like memo and comboboxes.

Further Microsoft UI Automation Support

Accessibility-related initiatives will spill over into our v25.1 release and include our VCL Data Grid, TreeList, Scheduler, Pivot Grid, and other data editors/data-aware controls. This is a huge undertaking and requires significant development resources.

Layout Control Enhancements

With v24.2, we will incorporate the following usability enhancements for the DevExpress Layout Control: 

  • New Close and Open methods to TdxLayoutSplitterItem (along with the corresponding OnClosed and OnOpened events) so you control state in code, without complex inheritance. This change will also impact accessibility support, because you will be able to implement extended keyboard support for this layout item.
  • An IsClosed flag to determine the state of TdxLayoutSplitterItem.
  • An OnResized event to determine the size of resized controls without a complicated solution based on mouse down and up events. This is helpful for advanced usage scenarios (onetwo) where the OnCanResize event is insufficient.
  • Clickable URL inside UI elements that support HTML or BBCode formatting, for example, inside the layout control items or groups (learn more).

Simplified Application-Wide Skin

As you probably know, prior to our v24.1 release cycle, you had to explicitly set the ColorSchemeName property for Ribbon controls to introduce a unified look and feel throughout a DevExpress-powered VCL application (see Usability - Ribbon controls do not follow the current color scheme). v24.1 addressed this particular issue. The recommended way to apply skins in DevExpress-powered VCL apps is to use the global TdxSkinController (or TcxLookAndFeelController - now deprecated). You should use this in both runtime and design-time environments for following reasons:

  1. Simplicity: You can apply this skin setting once per application instead of setting skins for multiple controls on multiple forms.
  2. Maintenance: Global skin setting is less error-prone. 
  3. Consistency: Our VCL components are optimized for performance and UI/UX consistency for usage scenarios where a single style (skin and palette) is used throughout the application. For instance, you cannot use WXI Compact for one control and WXI for another - or a green palette for one and a blue palette for another (within the same skin).
NOTE: It is still possible to set a skin at the individual control level (via LookAndFeel.SkinName), but this is not the recommended approach. If you do not wish to apply DevExpress VCL Skins to all the controls simultaneously, handle the OnSkinControl and OnSkinForm events of TdxSkinController (for instance, you can filter out standard Delphi controls like buttons by type).

In v24.2, we will continue the work started in v24.1 and extend look & feel configuration options as follows: 

  • Update the DevExpress Layout and Navigation Bar to use TdxSkinController in the same manner as the DevExpress Ribbon (learn more).
  • Make it easier for customers to introduce advanced solutions where a global skin is not required. We are considering the following options and would love your feedback:
    A. Use Global Skin – Make it possible to apply Ribbon style per component at both design-time and runtime (like in v23.2). We already implemented this option in v24.1.4+ for early testing (learn more).
    B. Apply DevExpress Skins only to DevExpress controls or to both DevExpress and third-party controls (learn more).

Updated TdxSkinController Dialog at Design Time

In v24.2, the Skin Controller dialog will display vector skins at the top. Raster skins will be displayed in a separate category and disabled by default. You can also select a default palette name and skin using a single mouse click (WXI is enabled by default) – you no longer need to set multiple properties in the Object Inspector. 

Conceptually, this dialog will be similar to the Project Settings page in our WinForms product line. Dialog settings will also be applied to all forms within your app, including skin and palette selector components.

We also want to avoid duplicate skin registrations in your units (under `uses`):

More Control over the Enabled/Disabled and Small/Large SVG Icons

We hope to introduce two new properties at the image list/image level and at the global TdxVisualRefinements level: UseEnabledSkinPaletteForSVG and UseDisabledSkinPaletteForSVG. With these options, you can explicitly enable/disable application of our VCL vector skin palette to your SVG glyphs for the enabled or disabled UI element state respectively. We already implemented these options in v24.1.4+ for early testing (learn more).

Why is this important? All SVG icons from the DevExpress Icon Library include CSS styles that define corresponding SVG element colors: Red, Green, Blue, Yellow, Black, and White. DevExpress VCL and .NET controls can use these CSS styles to apply the active vector skin palette to SVG glyphs to maintain contrast. A few of our customers reported an issue in this regard (incorrect appearance of disabled menu icons), so we hope to add more flexibility for the VCL Bar Manager, Ribbon, PDF Viewer, and potentially other components where enabled/disabled UI element state matters.

We are also looking forward to hearing your feedback about extending our v24.1 Ribbon feature to other controls like Button, Backstage View, List View, Navigation Bar, Image Combobox, etc. (learn more). Please post separate tickets in the Support Center if you are interested in this functionality for your VCL apps:

In v24.1, the DevExpress VCL Ribbon (and other UI controls) allow you to use a single image list for large and small SVG icons. With this capability you can simply specify a small SVG icon and we will scale it up automatically (for instance, in places where the control needs a large icon in the Ribbon). This will improve overall usability and should reduce time spent/maintenance in half.

Skin Editor Usability Enhancements

With v24.2, we want to make it easier for VCL developers to locate a list of skin elements or highlight a required skin element from the Skin Editor preview area, much like our WinForms implementation (Button - Highlight Highlight Element).

Hybrid VCL Components (aka JS/DevExtreme Wrappers)

As you may already know, hybrid apps (apps that look like native apps for a given platform, but rely on JavaScript (JS) or other technologies inside) are becoming more and more prevalent in the marketplace. Good examples are desktop versions of Microsoft Teams and Visual Studio Code, which rely on a WebView (an embedded web browser) component inside a native container app for Windows, macOS, or Linux. DevExpress itself has been using JS wrappers in our .NET MAUI, Blazor, and even WinForms product lines for quite a long time.

Experience tells us that in nearly all instances, deployment of a hybrid app rarely affects usability as internal JS components are generally fast, highly interactive, and support similar application themes. For application developers, the hybrid approach opens new opportunities, because of component availability (be it components from DevExpress or other third-party vendors). 

In our v24.2 release cycle, we want to publish a VCL example built using our DevExtreme JS HTML Editor. The editor already supports dark and light themes, and we want to extend this example to:

  • Make it easier to configure this JS widget using Delphi code (!).
  • Make it so that VCL developers do not have to worry about embedding JS code and CSS styles manually (we hope it can be embedded into a library as resources and loaded from the library transparently to developers).
  • Integrate JS HTML Editor commands with our VCL Ribbon control.

Additional Thoughts on Hybrid VCL Apps with DevExpress (Reporting, Dashboards, etc.)

If JS wrapper R&D efforts proceed according to plan and we find a straightforward way for VCL developers to configure hybrid components at both runtime (in code) and design-time, VCL developers can then theoretically reuse the DevExpress JS Report Viewer/Designer inside their VCL apps in the future (let's leave licensing considerations aside and focus on the tech side for now). By pursuing this strategy, new reports can be created/designed at runtime and stored in a database, file system, etc.

This same hybrid approach will be applicable to other DevExpress JS-based components: for instance, complex or advanced chart views like 3D, Funnel, or controls like BI Dashboards (hopefully I caught your attention with the last item). If hybrid solutions make sense to you (or if they don't), please share your feedback with us in the survey below.

Disclaimer: We have not yet planned anything in regarding VCL reporting, so I cannot give you any ETAs or promises. This purpose of this reference is to collect user feedback. Please post separate tickets in the Support Center if you are interested in hybrid/JS reporting functionality for your VCL apps and describe your specific user scenarios/expectations.

Chart Control - Configure Text Position for Bars

As you probably know, our VCL Chart Control (ExpressCharts Suite) ships as part of our VCL Subscription. As of today, it supports the following features/capabilities: 

If you have yet to consider our VCL Chart control perhaps the following feedback from Stefan Prister might give you a reason to give this library a try:

I mainly program for my business in the fruit growing sector. I create programs to evaluate data that amounts to millions of records in our company. Visually representing data graphically is the most basic thing. You can immediately see what it looks like. I tried Competitor #1 and also Competitor #2. Was waiting for DevExpress. If you're used to DevExpress tools, you won't easily use anything else.

Congratulations for the EAP VCL 24.1. Excellent work. I've been waiting for this dxChartControl for a long time. It meets my needs by far. Great looks, performance excellent. Selection of palettes already implemented thanks to your demo. Second axis is simply necessary. Crosshair works great, no flickering when moving the mouse.

In our v24.2 release cycle,we will give you full control over the position of TdxChartXYSeriesBarView value labels.

Clipboard-File-2.png

Your Feedback Matters

Thanks,
Dennis Garavsky

Principal Product Manager
dennis@devexpress.com


Viewing all articles
Browse latest Browse all 2370

Trending Articles