Saltar para o conteúdo principal
Versão: 19

Modo SDI em Windows

No Windows, os desenvolvedores 4D podem configurar suas aplicações 4D fundidas para trabalhar como aplicações SDI (Single-Document Interface). Nas aplicações SDI, cada janela é independente das outras e pode ter a sua própria barra de menus. As aplicações SDI são opostas às aplicações MDI (Multiple Documents Interface), em que todas as janelas estão contidas na janela principal e dependem dela.

O conceito SDI/MDI não existe no macOS. Esta funcionalidade diz respeito apenas a aplicações Windows e as opções relacionadas são ignoradas no macOS.

Disponibilidade do modo SDI​

O modo SDI está disponível somente no seguinte ambiente de execução:

  • Windows
  • Aplicação 4D fundida, autônoma ou cliente

Activação do modo SDI​

Para habilitar e usar o modo SDI em sua aplicação, são necessárias as seguintes etapas:

  1. Marque a opção Usar o modo SDI no Windows na página "Interface" da caixa de diálogo das Propriedades.
  2. Construa uma aplicação mesclada (monoposto /ou aplicação cliente).

Então, quando executado em um contexto compatível (veja acima), o aplicativo mesclado funcionará automaticamente no modo SDI.

Gerir aplicações no modo SDI​

A execução de uma aplicação 4D em modo SDI não requer qualquer implementação específica: as barras de menu existentes são automaticamente movidas nas próprias janelas SDI. No entanto, é necessário prestar atenção a princípios específicos que são enumerados a seguir.

No modo SDI, a barra de menu de processo é exibida automaticamente em todas as janelas de tipo de documento abertas pela duração do processo (isso exclui, por exemplo, paletas flutuantes). Entretanto, quando a barra de menu do processo não estiver visível, os atalhos dos itens de menu permanecem ativos.

Os menus são adicionados por cima das janelas sem alterar o tamanho do seu conteúdo:

Assim, as janelas podem ser utilizadas nos modos MDI ou SDI sem que seja necessário recalcular a posição dos objectos.

Acerca do ecrã inicial​

  • Se selecionar a opção de interface Tela de abertura nas Propriedades, a janela inicial conterá todos os menus que teriam sido apresentados na janela MDI. Note também que fechar a janela tela de abertura resultará na saída da aplicação, tal como no modo MDI.
  • Se a opção Splash screen não tiver sido selecionada, os menus serão apresentados apenas nas janelas abertas, dependendo das escolhas do programador.

Saída automática​

Quando executada em modo MDI, uma aplicação 4D simplesmente sai quando o utilizador fecha a janela da aplicação (janela MDI). No entanto, quando executadas em modo SDI, as aplicações 4D não têm uma janela de aplicação e, por outro lado, fechar a última janela aberta não significa necessariamente que o utilizador quer que a aplicação saia (podem estar a correr processos sem rosto, por exemplo) - embora possa ser o que ele quiser.

Para lidar com este caso, as aplicações 4D executadas no modo SDI incluem um mecanismo para sair automaticamente (chamando o comando QUIT 4D ) quando as seguintes condições são cumpridas:

  • o utilizador já não pode interagir com a aplicação
  • não existem processos usuário ativos
  • Os processos 4D ou processos de trabalho estão à espera de um evento
  • o servidor Web não é iniciado.

Quando um menu com uma ação padrão associada quit for chamado, a aplicação é encerrada e todas as janelas são fechadas, independentemente do local a partir do qual o menu foi chamado.

Línguagem​

Embora seja tratado de forma transparente por 4D, o modo SDI introduz pequenas variações na gestão da interface da aplicação. As especificidades da língua 4D são enumeradas a seguir.

Comando/funcionalidadeEspecificidade no modo SDI no Windows
Open form windowOpções de compatibilidade com janelas flutuantes em SDI (Janela do formulário do controlador) e para remover a barra de menus (O formulário não tem barra de menus)
Menu bar heightDevolve a altura em píxeis de uma única linha da barra de menus, mesmo que a barra de menus tenha sido envolvida em duas ou mais linhas. Devolve 0 quando o comando é chamado a partir de um processo sem uma janela de formulário
SHOW MENU BAR / HIDE MENU BARAplicado apenas à janela do formulário atual (a partir de onde o código é executado)
MAXIMIZE WINDOWA janela é maximizada para o tamanho do ecrã
CONVERT COORDINATESXY Screen é o sistema de coordenadas global onde a tela principal está posicionada em (0,0). Telas situadas à sua esquerda ou por cima podem ter coordenadas negativas e as telas situadas à sua direita ou por baixo podem ter coordenadas superiores aos valores devolvidos por Screen height ou Screen width.
GET MOUSEAs coordenadas globais são relativas ao ecrã
GET WINDOW RECTQuando -1 é passado no parâmetro da janela, o comando retorna 0;0;0;0;0
On Drop database methodNão compatível