Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v18
Modo SDI em Windows

Modo SDI em Windows  


 

Em Windows, os desenvolvedores 4D podem configurar suas aplicaçõesfusionadas para trabalhar como aplicações SDI (Single-Document Interface). Nas aplicações SDI, cada janela é independente de outras e pode ter sua própia barra de menus. As aplicações SDI se opõe às aplicações MDI (Multiple Documents Interface), onde todas as janelas estão contidas e dependem da janela principal.

Nota para macOS: o conceito SDI/MDI não existe em macOS. Esta funcionalidade só se refere às aplicações Windows e às opções relacionadas são ignoradas em macOS.

 

O modo SDI só está disponível nos ambientes de execução abaixo:

  • Windows
  • Aplicação 4D monoposto ou Aplicação cliente 4D

A ativação e o uso de modo SDI em sua aplicação exigem os seguintes passos:

  1. Marque a opção Usar modo SDI em Windows na página "Interface" de quadro de diálogo Configuração do banco de dados (ver Página Interface).
  2. Crie uma aplicação fusionada (aplicação independente ou cliente, ver Finalizar e distribuir aplicativos).

Depois, quando for executada em um contexto suportado (ver acima), a aplicação fusionada funcionará automaticamente em modo SDI.

A execução de uma aplicação 4D em modo SDI não exige nenhuma implementação específica: as barras de menu existentes são movidas automaticamente nas próprias janelas SDI. Entretanto, é necessário prestar atenção aos principios específicos que são enumerados abaixo.

No modo SDI, a barra de menus do processo são mostradas automaticamente em cada janela do tipo de documento aberta durante a vida do processo (isto exclui, por exemplo, as espátulas flutuantes). Quando a barra de menus do processo não estiver visível, os acessos diretos de elemento de menu permanecem ativos.

Os menús são adicionados acima das janelas sem modificar o tamanho de seu conteúdo:

Portanto, Windows pode ser utilizado  nos modos MDI ou SDI sem ter que voltar a calcular a posição dos objetos.

Nota sobre a tela de boas vindas:

  • Se selecionar a opção de interface Tela de boas vindas para o banco de dados (ver Página Interface),  a janela de boas vindas conterá todo menu que tenha sido mostrado na janela MDI. Lembre também que fechar a janela de início resultará em sair da aplicação, da mesma forma que no modo MDI.
  • Se não selecionou a opção Tela de boas vindas para o banco de dados, os menus são mostrados apenas em janelas abertas, segundo as opções do programador.

Quando  executar em modo MDI, uma aplicação 4D simplesmente se fecha quando o usuário fechar a janela da aplicação (janela MDI). Entretanto, quando são 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 usuário deseje que a aplicação se feche (por exemplo, podem executar processos), apesar de que isso poderia ser o desejado.

Para manejar este caso, as aplicações 4D executadas em modo SDI incluem um mecanismo para fechar automaticamente (chamando ao comando QUIT 4D) quando forem cumpridas as  condições abaixo:

  • O usuário já não pode interagir com a aplicação
  • Não há processos usuário vivos
  • Os processos 4D ou os processos worker estão esperando um evento
  • O servidor Web não é iniciado.         

Nota: quando for chamado a um menu com uma ação padrão sair associada, a aplicação se fecha e todas as janelas são fechadas,  desde de onde quer que tenha sido chamado o menu.

Apesar de ser manejado de forma transparente por 4D, o modo SDI introduz pequenas variações na gestão da interface da aplicação. As especificidades na linguagem 4D são listadas abaixo.

Comando/funcionalidadeEspecificidade no modo SDI em Windows
Open form windowOpções para suportar janelas flutuantes em SDI (Controller form window) e eliminar a barra de menus (Form has no menu bar)
Toolbar form window Tipo de janela não suportado
Menu bar heightDevolve a altura em píxels de uma única linha de barra de menu mesmo se a barra de menus esteja em duas ou mais línhas. Devolve 0 quando o comando for chamado desde um processo sem uma janela de formulário
SHOW MENU BAR / HIDE MENU BARAplicada só à janela de formulário atual (desde onde o código é executado)
MAXIMIZE WINDOWA janela se maximiza ao tamanho da tela
CONVERT COORDINATESXY Screen é o sistema de coordenadas global onde a tela principal é posicionada en (0,0). As telas do lado esquerdo ou na parte superior podem ter coordenadas negativas e toda tela do lado direito ou embaixo pode ter coordenadas maiores que os valores devolvidos por Screen height ou Screen width.
GET MOUSEAs coordenadas globais são relativas à tela
GET WINDOW RECTQuando passar -1 no parâmetro window, o comando devolve 0;0;0;0
On Drop database methodNão compatível



Ver também 

Finalizar e distribuir aplicativos
Página Interface

 
PROPRIEDADES 

Produto: 4D
Tema: Menus e barras de menus

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Criado por: 4D v16 R4

 
ARTICLE USAGE

Manual de Desenho 4D ( 4D v18)