Com o lançamento oficial do Windows 11, a Embarcadero disponibilizou alguns estilos VCL específicos e estou oferecendo alguns auxiliares de codificação específicos para a nova versão do sistema operacional de desktop da Microsoft. Mais virá com o tempo.
Após o anúncio no início deste ano, a Microsoft lançou oficialmente o Windows 11 na semana passada. Apesar de alguns problemas ao executar o novo sistema operacional em computadores mais antigos devido a novos requisitos de hardware, a nova versão do Windows oferece uma experiência de usuário e ambiente de trabalho mais agradáveis, enquanto mantém um alto grau de compatibilidade com os aplicativos existentes, incluindo aqueles escritos com Delphi e C ++ Builder. Esperamos que muitos usuários finais migrem para o Windows 11 nos próximos meses.
Nesta postagem do blog, não quero me concentrar no Windows 11 e sua experiência de usuário renovada, mas sim em como você pode melhorar ainda mais seus aplicativos VCL para torná-los cidadãos de primeira classe no novo sistema operacional. Em termos gerais, existem muitas técnicas de modernização que Delphi e C ++ Builder oferecem para melhor se adequar às versões recentes do Windows, desde o uso de estilos VCL até a adoção de muitos novos controles VCL introduzidos nos últimos anos (até o ControlList e os controles NumberBox no RAD Studio 10.4.2 e o RichEdit renovado no RAD Studio 11 Alexandria).
Vamos nos concentrar no suporte específico do Windows 11, indo ainda mais longe do que as sugestões e ideias gerais de migração. O Windows 11 vem com os controles WebView2, então este é um ótimo momento para adotar o TEdgeBrowser em vez do componente TWebBrowser. Além disso, a Microsoft continua se concentrando em aplicativos empacotados e na Microsoft Store, dois recursos que você pode obter por meio do suporte RAD Studio IDE para o formato de implantação MSIX. Esses recursos estão na versão atual do RAD Studio 11 (e estavam lá ainda antes).
Table of Contents
Novos estilos de VCL do Windows 11
O que lançamos ontem e agora está disponível no GetIt é um conjunto de dois novos estilos VCL específicos para o Windows 11, para o modo claro e escuro. Digite “Windows 11” na barra de pesquisa para localizá-los rapidamente:
Depois de instalar os dois estilos, você pode abrir as configurações de um projeto VCL, ir à página Aparência, adicionar os estilos ao aplicativo e (se você tiver habilitado o uso de estilos VCL em tempo de design), selecioná-los na propriedade StyleName de um formulário para visualizá-los em tempo de design, como na imagem abaixo. Observe, entre outros elementos, as barras de rolagem finas de estilo moderno na caixa de listagem.
Temos mais algumas imagens “oficiais” dos dois estilos abaixo, onde você pode ver elementos arredondados adicionais e cores que correspondem aos novos padrões da plataforma.
Cantos arredondados do Windows 11
Um dos elementos mais visíveis do Windows 11 é o uso de “elementos de IU arredondados”, começando com os cantos arredondados. Se você criar um novo aplicativo VCL sem nenhuma configuração ou definição especial e executá-lo no Windows 11, verá cantos arredondados para os formulários por padrão. No entanto, este é um recurso sobre o qual você tem total controle sobre o uso de uma chamada de API pública específica do Windows DwmSetWindowAttribute :
1 2 |
Winapi.Dwmapi.DwmSetWindowAttribute(Handle, DWMWA_WINDOW_CORNER_PREFERENCE, @CornerPreference, sizeof(CornerPreference)); |
Para torná-lo mais fácil de usar esta API (já coberto por Ian Barker em um post detalhado blog intitulado “ Como controlar o Windows 11 cantos arredondados em seu aplicativo “), eu escrevi um interposer classe auxiliar com código semelhante, disponível no GitHub em:https://github.com/marcocantu/DelphiSessions/blob/master/Win11_Delphi11/Win11Round/Win11Forms.pasVocê pode ver a seção de interface da unidade aqui:
Basta adicionar esta unidade na instrução usa da seção de interface de um formulário, após a unidade Vcl.Forms, e seu formulário terá uma nova propriedade de classe indicando o arredondamento padrão e uma nova propriedade para a configuração específica do formulário, para que você possa escrever :
1 2 |
TForm.DefaultRoundedCorners := rcOff; // set default for all forms RoundedCorners := rcOn; // change the rounding for the current form |
Este código funciona apenas no Windows 11, já que o Windows 10 ou versões anteriores o ignoram (mas não gera nenhum erro). Usei-o em uma demonstração simples (também no GitHub em https://github.com/marcocantu/DelphiSessions/tree/master/Win11_Delphi11/Win11Round ) com a seguinte IU:
Por fim, observe que os aplicativos VCL, incluindo aqueles que usam a VCL TitleBar personalizada, oferecem suporte para Snap Layouts prontos para uso:
Um pequeno problema e mais por vir
Como mencionei antes, os aplicativos VCL geralmente funcionam bem no Windows 11. Há um problema com a coloração dos itens de menu com imagens associadas, já que a plataforma usa um conjunto diferente de cores padrão que um aplicativo VCL não respeita totalmente. Isso foi relatado em QP https://quality.embarcadero.com/browse/RSP-35049 . Embora haja uma solução alternativa no relatório do Portal de qualidade, estamos planejando oferecer uma correção para o RAD Studio 11 para esse problema em breve.
Estamos planejando mais alguns aprimoramentos relacionados ao Windows 11 e demonstrações de novos recursos nos próximos meses e no futuro lançamento do RAD Studio 11.1. Fique ligado.
Construir aplicativos para Windows 11 com VCL
Não é um mistério que a Embarcadero usou a versão 11 para a última versão do RAD Studio para vinculá-la ao Windows 11. Com todas as mudanças nas bibliotecas de IU que as próprias ferramentas da Microsoft passaram nos últimos anos, estou certo de que a amplitude do suporte à API e a integração de plataforma oferecida pela biblioteca VCL em Delphi e C ++ Builder é incomparável pelo Microsoft Visual Studio ou qualquer conjunto de ferramentas de terceiros. A Microsoft tem indicado claramente que o desenvolvimento nativo do Windows é e continua sendo a chave (consulte Windows App SDK, também conhecido como Project Reunion) e continua sendo a opção principal, mas suas bibliotecas neste espaço (como MFC e WinForms) não estão no mesmo nível de VCL e ficam para trás em recursos próprios da plataforma.
A biblioteca VCL, com sua capacidade de mapear APIs clássicas e modernas (de Win API a APIs baseadas em COM, a WinRT) e seu suporte para monitores de alto DPI e tendências de IU modernas – tudo sem exigir uma reescrita completa do aplicativo – é única no cenário de desenvolvimento de desktop do Windows e se destaca claramente por seu poder. Para o desenvolvimento do Windows 11, a Biblioteca de Componentes Visuais é o caminho a percorrer.
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition