Ícono del sitio Embarcadero RAD Studio, Delphi, & C++Builder Blogs

Más compatibilidad con VCL para Windows 11

win11 vclapp

Con el lanzamiento oficial de Windows 11, Embarcadero ha puesto a disposición algunos estilos VCL específicos y estoy ofreciendo algunos ayudantes de codificación específicos para la nueva versión del sistema operativo de escritorio de Microsoft. Más vendrán con el tiempo.


Después del anuncio a principios de este año, Microsoft lanzó oficialmente Windows 11 la semana pasada. A pesar de algunos problemas al ejecutar el nuevo sistema operativo en computadoras más antiguas debido a los nuevos requisitos de hardware, la nueva versión de Windows ofrece una experiencia de usuario y un entorno de trabajo más agradables, al tiempo que mantiene un alto grado de compatibilidad con las aplicaciones existentes, incluidas las escritas con Delphi y C ++ Constructor. Esperamos que muchos usuarios finales pasen a Windows 11 en los próximos meses.

En esta publicación de blog, no quiero centrarme en Windows 11 y su renovada experiencia de usuario, sino más bien en cómo puede mejorar aún más sus aplicaciones VCL para convertirlas en ciudadanos de primera clase en el nuevo sistema operativo. En términos generales, hay muchas técnicas de modernización que Delphi y C ++ Builder ofrecen para adaptarse mejor a las versiones recientes de Windows, desde el uso de estilos VCL hasta la adopción de muchos nuevos controles VCL introducidos en los últimos años (hasta ControlList y los controles NumberBox en RAD Studio 10.4.2 y el renovado RichEdit en RAD Studio 11 Alexandria).

Centrémonos en el soporte específico de Windows 11, yendo incluso más allá de las sugerencias e ideas generales de migración. Windows 11 se envía con los controles WebView2, por lo que este es un buen momento para adoptar  TEdgeBrowser  sobre el componente TWebBrowser. Además, Microsoft sigue enfocándose en aplicaciones empaquetadas y Microsoft Store, dos capacidades que puede lograr a través de la compatibilidad con RAD Studio IDE para el formato de implementación MSIX. Estas características están en la versión actual de RAD Studio 11 (y estaban allí incluso antes).

Nuevos estilos VCL de Windows 11

Lo que lanzamos ayer y ahora está disponible en GetIt es un conjunto de dos nuevos estilos VCL específicos para Windows 11, para modo claro y oscuro. Escriba “Windows 11” en la barra de búsqueda para localizarlos rápidamente:

Una vez que haya instalado los dos estilos, puede abrir la configuración de un proyecto VCL, ir a la página Apariencia, agregar los estilos a la aplicación y (si ha habilitado el uso de estilos VCL en el momento del diseño), seleccionarlos en la propiedad StyleName de un formulario para obtener una vista previa en tiempo de diseño, como en la imagen de abajo. Observe, entre otros elementos, las barras de desplazamiento delgadas de estilo moderno en el cuadro de lista.

Tenemos algunas imágenes más “oficiales” de los dos estilos a continuación, donde puede ver elementos redondeados adicionales y colores que coinciden con los valores predeterminados de la nueva plataforma.

Esquinas redondeadas de Windows 11

Uno de los elementos más visibles de Windows 11 es el uso de “elementos de interfaz de usuario redondeados”, comenzando con las esquinas redondeadas. Si crea una nueva aplicación VCL sin una configuración o ajuste especial y la ejecuta en Windows 11, debería ver las esquinas más redondeadas de los formularios de forma predeterminada. Sin embargo, esta es una característica sobre la que tiene control total mediante el uso de una API de Windows pública y específica llamada  DwmSetWindowAttribute :
[crayon-67426e41341cf919810532/]
Para facilitar el uso de esta API (ya cubierto por  Ian Barker  en una publicación de blog detallada titulada ” Cómo controlar las esquinas redondeadas de Windows 11 en su aplicación “), escribí una  clase auxiliar de interposición  con código similar, disponible en GitHub en:

https://github.com/marcocantu/DelphiSessions/blob/master/Win11_Delphi11/Win11Round/Win11Forms.pas

Puede ver la sección de interfaz de la unidad aquí:

Simplemente agregue esta unidad en la declaración de usos de la sección de interfaz de un formulario, después de la unidad Vcl.Forms, y su formulario tendrá una nueva propiedad de clase que indica el redondeo predeterminado y una nueva propiedad para la configuración específica del formulario, para que pueda escribir :
[crayon-67426e41341d5515824383/]
Este código solo funciona en Windows 11, ya que Windows 10 o versiones anteriores lo ignoran (pero no genera ningún error). Lo usé en una demostración simple (también en GitHub en  https://github.com/marcocantu/DelphiSessions/tree/master/Win11_Delphi11/Win11Round ) con la siguiente interfaz de usuario:

Por último, observe que las aplicaciones VCL, incluidas las que utilizan la barra de título VCL personalizada, ofrecen compatibilidad con  Snap Layouts  desde el primer momento:

Un pequeño problema y más por venir

Como mencioné anteriormente, las aplicaciones VCL generalmente funcionan bien en Windows 11. Hay un problema con el color de los elementos del menú con imágenes asociadas, dado que la plataforma usa un conjunto diferente de colores predeterminados que una aplicación VCL no respeta completamente. Esto se informó en QP  https://quality.embarcadero.com/browse/RSP-35049 . Si bien hay una solución alternativa en el informe de Quality Portal, estamos planeando ofrecer una solución para RAD Studio 11 para este problema en breve.

Estamos planeando algunas mejoras adicionales relacionadas con Windows 11 y demostraciones de nuevas funciones en los próximos meses y en el futuro lanzamiento de RAD Studio 11.1. Manténganse al tanto.

Cree aplicaciones para Windows 11 con VCL

No es un misterio que Embarcadero usó la versión 11 para la última versión de RAD Studio para vincularla con Windows 11. Con todos los cambios en las bibliotecas de interfaz de usuario que experimentaron las herramientas de Microsoft en los últimos años, estoy seguro de que la amplitud del soporte de API y la integración de plataforma que ofrece la biblioteca VCL en Delphi y C ++ Builder no tiene paralelo con Microsoft Visual Studio o cualquier conjunto de herramientas de terceros. Microsoft ha estado indicando claramente que el desarrollo nativo de Windows es y sigue siendo clave (ver Windows App SDK, también conocido como Project Reunion) y sigue siendo la opción principal, pero sus bibliotecas en este espacio (como MFC y WinForms) no están a la par con VCL y van a la zaga de su características propias de la plataforma.

La biblioteca VCL, con su capacidad para mapear API clásicas y modernas (desde API Win, API basadas en COM, hasta WinRT) y su soporte para monitores High DPI y tendencias modernas de UI, todo sin requerir una reescritura completa de la aplicación, es única. en el escenario de desarrollo de escritorio de Windows y destaca claramente por su potencia. Para el desarrollo de Windows 11, la biblioteca de componentes visuales es el camino a seguir.

Salir de la versión móvil