Personalizar o aspeto da aplicação com novos tipos de janelas

4D 20 R5 desbloqueia novas possibilidades na personalização de aplicações. dois tipos de janelas adicionais agora oferecem janelas modais ou não modais, flexíveis, sem barras de título. Isso significa total liberdade para adaptar a aparência de sua aplicação às suas especificações exatas. Imagine redesenhar a barra de título para corresponder à sua estética desejada, integrando funcionalidades como uma caixa de pesquisa personalizada ou outros elementos sem problemas.

Mas isso não é tudo! Também introduzimos vários novos comandos concebidos para otimizar o seu processo de desenvolvimento:

  • Reduzir uma janela na barra de título no Windows ou na doca no macOS,
  • Saber se a janela está reduzida na barra de título no Windows ou no dock do macOS,
  • Saber se a janela está maximizada.

IDH: Melhorar a forma

Novos tipos de janela

Duas novas constantes podem ser usadas com o comando Open form window.

$winRef1:=Open form window("myForm1"; Plain form window no title)
$winRef2 :=Open form window("myForm2"; Movable form dialog box no title)

Form without title bar, with a "Hello World!" static text and a "OK" button

Aqui está um exemplo com uma barra de título personalizada:

  • Um retângulo com a cor de fundo automática. Assim, no macOS, no modo claro, o retângulo é branco, e no modo escuro, o retângulo é preto.
  • Um botão invisível por cima do retângulo. Ao clicar, o botão aciona o comando DRAG WINDOW permitindo que a janela seja movida.
  • Três botões, Fechar, Maximizar e Minimizar com comandos associados MAXIMIZE WINDOW, MINIMIZE WINDOW, e REDUCE RESTORE WINDOW. Quanto ao aspecto dos botões, um pouco mais trabalhoso para o macOS, o rollover é efetuado nos três botões em simultâneo. Assim, nos eventos On Mouse enter e On Mouse Leave, os ícones dos botões são modificados com o comando OBJECT SET FORMAT.

 

No macOS:

Formulário simples sem título

Plain form window with a custom title bar that contains "close", "minimize" maximize" buttons and a search area.

Caixa de diálogo móvel sem título

Modal dialog with a custom title bar that contains "close", "minimize", "maximize" and "help"buttons

No Windows:

Formulário simples sem título

blank

Caixa de diálogo amovível sem título

blank

 

Um exemplo online:

Novos comandos

Para além destes novos tipos de janelas, introduzimos também alguns comandos úteis para simplificar o seu processo de desenvolvimento:

  • O comando REDUCE RESTORE WINDOW permite-lhe reduzir a janela mais à frente ou a janela nomeada na barra de tarefas no Windows em modo SDI ou no dock do macOS. Se a janela for reduzida, o comando restaura-a para o seu estado anterior.

REDUCE RESTORE WINDOW($winRef)

  • O comando Is window reduced ajuda-o a determinar se uma janela está atualmente no estado reduzido. Este conhecimento pode ser aproveitado para executar ações específicas com base no estado da janela.

If(Is window reduced($winRef))
// Fazer algo
End if

  • O comando Is window maximized permite-lhe saber se a janela está no estado maximizado, para que possa alternar facilmente entre os estados maximizado e anterior.

If(Is window maximized($winRef))
MINIMUM WINDOW ($winRef)
Else
MAXIMIZE WINDOW ($winRef)
End if

E…

Consulte esta página de documentação para obter mais informações sobre os diferentes tipos de janelas. Não hesite em partilhar as interfaces incríveis que criou com esta funcionalidade no Fórum 4D.

Vanessa Talbot
• Proprietário do produto - Vanessa Talbot entrou ao time 4D Program em Junho de 2014 como Proprietária do Produto e está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais. Seu papel também é garantir que a implementação da funcionalidade entregue cumpra com as necessidades do cliente. Desde sua chegada, trabalhou na definição de funcionalidades chaves em 4D. Trabalhou na maioria das novas funcionalidades multithread preemptivo e também em um tema muito complexo: a nova arquitetura para a aplicação engined. Vanessa é formada pela Telecom Saint-Etienne. Começou sua carreira no Instituto de Investigação Criminal como desenvolvedora do departamento audiovisual. Também trabalhou em meios de comunicação e no âmbito médico como especialista em assistência técnica, produção e documentação de novas funcionalidades.