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

Modo SDI em Windows

No Windows, os desenvolvedores 4D podem testar e 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.

info

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 apenas nos seguintes ambientes de execução:

Activação do modo SDI

Para ativar o modo SDI na sua aplicação, basta selecionar a opção Utilizar o modo SDI no Windows na página "Interface" da caixa de diálogo Parâmetros.

Uma vez ativada, para executar efetivamente a sua aplicação no modo SDI, pode:

  • criar uma aplicação combinada (autônoma e/ou aplicação cliente) e executá-la no Windows, ou
  • selecione Test Application in SDI Mode a partir do menu Run no Windows para testar o desenvolvimento.
info

Because the development environment is executed in MDI, switching from design mode to runtime mode using the Test Application in SDI Mode menu item is equivalent to restarting your application.

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.

Tela inicial

  • Se selecionar a opção de interface Splash screen nas Definições, 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.

Depurador

When displayed in SDI mode, the debugger window does not contain editing buttons, because switching to design environment requires to abort execution and restart the application in MDI mode.

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
  • o servidor WebAdmin não foi iniciado.
nota

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
info

Pode utilizar o comando Get application info para conhecer o modo de execução atual no Windows.