Jump to content
Der schöne Günther

WinUI in Delphi (planned for 10.5?)

Recommended Posts

As far as I understand WinUI 3, it will be a UI library, independent of the application mode (Win32 or UWP).

 

The RAD Studio November 2020 Roadmap PM Commentary (embarcadero.com) states (emphasis by me)

Quote

Regarding the Windows platform, as mentioned earlier, we plan on offering support for the various technologies that are part of Microsoft Project Reunion. In particular, in the RAD Studio 10.5 release, we are looking forward to integrating the support for modern Windows UX via the WinUI 3 library. According to Microsoft’s roadmap for the library, it should become possible to use the components of this library in a native application based on the classic API, mixing forms and controls of different types. The actual details will depend on what the library will deliver in terms of integration with native applications, but our current plan is to integrate this library in the VCL with new specific controls.

As far as I understand, this sounds especially like XAML Islands, and I suppose this is also what the component WinRT (winsoft.sk) does.

 

Here is the description from Microsoft

 

Quote

Who can use WinUI?

While WinUI 2 is only compatible with UWP XAML, WinUI 3 will work with every kind of Windows app! WinUI 3 can be used directly as the UI layer for Win32 and UWP apps, or it can be used to modernize a Win32 app's UI gradually, using XAML Islands to mix and match with the following technologies:

  • WPF
  • WinForms
  • MFC
  • ComCtl32

Source: WinUI (microsoft.github.io)

 

I am really looking forward to this. One downside is that XAML Islands were introduced in Windows 1809, but only in beta. It is officially supported from 1903 on. We are deploying devices with the latest Windows LTSC branch, which is 1809. I have talked to Microsoft developers about this, and while it should work on 1809, there might be issues, and I should not expect workarounds or patches.

 

Let's see how this goes...

Share this post


Link to post

Hm, when will Microsoft start to rewrite Office to use WinUI?

 

Until that happens, I am skeptical whether this will be worth the effort. But I am only a disgruntled old white man^d^d^d^d^d^d^d^d^dVCL developer.

  • Like 4
  • Thanks 1

Share this post


Link to post
25 minutes ago, Der schöne Günther said:

Let's see how this goes...

Looking into my crystal ball I see that in a few years Microsoft will introduce something even better and we will be left with yet another UI layer.

One can hope that they've learned from their mistakes but their track record isn't too great.

  • Like 1

Share this post


Link to post

Very true. The same applies to Embarcadero. If 64 Bit or DPI scaling is so easy, then why does their own IDE not support it yet?


Microsoft already uses, for example, WebView2 in Outlook and others, but I have yet to see other new controls in office products. To be fair, WinUI is still in preview.

Share this post


Link to post

WinSoft - I didn't even know I had such a company under my nose.:classic_smile:

Share this post


Link to post
23 minutes ago, Der schöne Günther said:

Very true. The same applies to Embarcadero. If 64 Bit or DPI scaling is so easy, then why does their own IDE not support it yet?

64bit IDE is not question of easiness. It is also question of 3rd party libraries and design packages support. You cannot mix 32bit and 64bit DLLs so having 64bit IDE would mean everyone would need to provide their components and plugins as 64bit versions, too. Also, because you cannot mix 32bit and 64bit DLLs in a process, there is question of other parts of the Delphi IDE - this is not just Editor, but also compiler, linker, debugger... not everything is written in Delphi and porting any of the necessary parts to 64bit may not be straight forward.

 

Easy part of 64bit transition is about Delphi applications, even though depending on your code you may have smooth or bumpy ride, too. I didn't have to do any adjustments for my code, because I never used any hacks around integer - pointers casting and I always had bitness explicitly specified for any data types I have used. So, generally most of transition to 64bit should be easy, but it also depends on specific projects and other libraries, plugins and interactions they might have and use.

 

Scaling is bit different story... VCL Styles originally didn't have High DPI support, and when they were added to IDE theming in Rio they were still without High DPI support... now they have High DPI support, but tweaking the IDE to fully work under High DPI does require some work. This part would be the same with or without VCL Styles. 

 

I would first make IDE high DPI aware and then add styles... but that is me... why are some things done the way they are, I have no idea.

  • Like 2

Share this post


Link to post
On 11/18/2020 at 11:58 AM, Dalija Prasnikar said:

... the Delphi IDE - this is not just Editor, but also compiler, linker, debugger... not everything is written in Delphi ...

Is there a reliable table somewhere, for the references of different components, platforms, tools, etc., which where used in the IDE ?

Would be very good to get an overview about that, to see what references especially could be problematic.

 

Share this post


Link to post
2 hours ago, Rollo62 said:

Is there a reliable table somewhere, for the references of different components, platforms, tools, etc., which where used in the IDE ?

Would be very good to get an overview about that, to see what references especially could be problematic.

Not that I know of. But you could have a look into the BPLs using the GExperts PE Information Expert. It shows a list of units and classes which the package exports. That would give you a starting point.

Edited by dummzeuch
  • Like 2

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×