Delphi 11 e modo High DPI

Delphi 11 Alexandria introduz um novo modo que oferece suporte ao designer do IDE em alta DPI. Isso melhorará a experiência de design quando você usar um monitor 2K ou 4K. Aqui está um artigo de blogarrow-up-right sobre esse novo modo.

Usar esse modo tem algumas desvantagens. Quando você usa uma DPI superior a 96 DPI, o IDE tentará redimensionar os elementos da tela com base na nova DPI. O arquivo DFM salvará a nova DPI e as dimensões modificadas do form e de seus controles filhos. Ao executar a aplicação, o Delphi tentará igualar a DPI do Form com a DPI atual da tela e redimensionar os elementos da interface, se necessário. Isso funciona perfeitamente para aplicações desktop VCL, mas para apps uniGUI isso não tem efeito, pois a DPI da tela é controlada pelo navegador.

A questão aqui é como os apps uniGUI irão se comportar se os forms uniGUI forem desenhados em uma DPI diferente de 96?

Considere que seu form contém um único TUniButton com dimensões padrão (75 x 25 pixels). Quando o designer está ajustado para 96 DPI, essas dimensões são preservadas, mas em DPIs mais altas o IDE redimensionará o elemento com base no valor da DPI. Então, se seu IDE estiver definido para 150 DPI, o botão será redimensionado para (117 x 39 pixels) e esses valores são salvos nos arquivos DFM juntamente com a nova DPI (salva como PixelsPerInch).

Quando você executa a aplicação web, o uniGUI tentará redimensionar os elementos da tela com base em 96 DPI, então o navegador renderizará os elementos como se os forms uniGUI tivessem sido projetados em 96 DPI.

o uniGUI build 1555 e posteriores suportam o recurso acima. No entanto, devemos ter em mente que isso ainda não é perfeito. Para projetos novos você pode não experimentar problemas, mas quando abrir projetos antigos projetados em 96 DPI no novo IDE Delphi 11 com High DPI isso pode causar alguns problemas. Especialmente se sua aplicação uniGUI for uma mistura de forms e frames.

circle-exclamation
clip0235