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 v20 R7
Tipos de janelas

Tipos de janelas  


 

Pode usar uma das constantes abaixo do tema "Abrir janela formulário" para especificar o tipo de janela que vai abrir com  Open form window:

Constante Tipo Valor
Modal form dialog box Inteiro longo 1
Movable form dialog box Inteiro longo 5
Plain form window Inteiro longo 8
Pop up form window Inteiro longo 32
Sheet form window Inteiro longo 33
Toolbar form window Inteiro longo 35
Palette form window Inteiro longo 1984
Form has no menu bar Inteiro longo 2048
Form has full screen mode Mac Inteiro longo 65536
Controller form window Inteiro longo 133056
Movable form dialog box no title Inteiro longo 524293
Plain form window no title Inteiro longo 524296

 

Esta seção mostra cada tipo de janela em Windows (esquerda) e macOS (direita).

Uma janela modal coloca ao usuário em um estado (ou “modo”) onde apenas pode atuar dentro desta janela. Enquanto a janela modal for mostrada, os comandos de menu e as outras janelas da aplicação são inacessíveis. Para fechar uma janela modal, o usuário deve validá-la, cancelá-la, ou escolher uma das opções que oferece. As caixas de diálogo de alerta são exemplos típicos de janelas modais. Em 4D, as janelas de tipo Modal form dialog box, Movable form dialog box e Movable form dialog box no title  são janelas modais.


Nota: uma janela modal sempre permanece no primeiro plano. Por causa disso, quando uma janela modal chamará uma janela não modal, esta última janela é mostrada ao fundo, mesmo se for chamado depois da janela modal. Portanto evite este tipo de operação.

Pelo contrário, quando uma janela modal chamar a outra janela modal, a última janela se mostrará no primeiro plano.

  • Pode ter um título: não
  • Pode ter uma caixa Fechar ou um equivalente: não
  • Pode ser redimensionado: não
  • Pode minimizar/maximizar ou zoom: não
  • Adaptada às barras de rolagem: não
  • Uso: DIALOG, ADD RECORD (...;...*) ou equivalente
  • As janelas desse tipo são modais

  • Pode ter um título: sim
  • Pode ter uma caixa Fechar ou um equivalente: sim
  • Pode ser redimensionado: sim
  • Pode minimizar/maximizar ou zoom: sim
  • Adaptada às barras de rolagem: não
  • Uso: DIALOG, ADD RECORD (...;...*) ou equivalente
  • Janelas desse tipo são modais, mas podem ser movidas

  • Pode ter um título: sim
  • Pode ter uma caixa Fechar ou um equivalente: sim
  • Pode ser redimensionado: sim
  • Pode minimizar/maximizar ou zoom: sim
  • Adaptada às barras de rolagem: sim
  • Uso: entrada de dados com barras de rolagem, DISPLAY SELECTION, MODIFY SELECTION, etc.

Este tipo de janela  dispõe de propriedades avançadas específicas:

  • A janela é fechada automaticamente e o evento "cancelar" se passar para a janela quando:
    • ocorrer um clique fora da janela;
    • a janela de fundo ou a janela MDI (Multiple Document Interface) se move;
    • o usuário clica na tecla Esc.
  • Esta janela se mostra adiante de sua janela "pai" (não deve ser utilizado como janela principal do processo). A janela de fundo não está desativada. Entretanto, não recebe mais eventos.
  • Não é possível redimensionar ou mover a janela utilizando o mouse; entretanto, ao realizar estas ações por programação, se otimiza o redimensionamento dos elementos do fundo.
  •  Uso: Este tipo de janela se adapta particularmente ao manejo dos pop-up menus associados aos botões 3D de tipo “bevel” ou “barras de ferramentas”.
  •  Limitação:
    • não é possível exibir objetos pop up dentro desse tipo de janela
    •  este tipo de janela não permite mostrar mensagens de ajuda em Mac OS.

As janelas folha (sheet windows) são específicas para Mac OS X. Estas janelas “descem” da barra de título da janela principal utilizando uma animação e são mostradas sobre a janela principal. São centradas automaticamente na janela principal. Suas propriedades são idênticas às das caixas de diálogo modais. Geralmente são utilizadas para realizar uma ação diretamente relacionada com a que é realizada na janela principal.

  • Pode criar uma janela folha apenas em Mac OS X se a última janela aberta for visível e de tipo documento (form).
  • O comando abre uma janela de tipo 1 (diálogo modal) ao invés de uma de tipo 33:
    • se a última janela aberta não for visível ou não for de tipo documento,
    • em windows.
  • Como uma janela folha deve ser criada sobre um formulário, sua visualização é recusada no evento On Load do primeiro formulário carregado na janela (ver o exemplo 3 do comando Open form window).
  • Uso: DIALOG, ADD RECORD (...;...*) ou equivalente, em Mac OS (não é padrão em Windows).

Uma janela de formulário barra de ferramentas é criada com a localização, tamanho e propriedades gráficas de uma barra de ferramentas, ou seja.

  • A janela será sempre exibida abaixo da barra de menu
  • O tamanho horizontal da janela será automaticamente ajustado para preencher todo o espaço horizontal disponível no desktop (em macOS) ou dentro da janela principal de 4D (em Windows). O tamanho vertical da janela é baseada nas propriedades formulário como todas as outras janelas do tipo formulário.
  • A janela não tem borda, não pode ser movida e não pode ser redimensionada manualmente
  • Não é possível criar duas diferentes barras de ferramenta janela ao mesmo tempo no mesmo processo (senão erro  -10613, "Não pode criar duas janelas formulário do tipo barra de ferramentas" é gerado).

Janela formulário Barra de Ferramentas e  macOS modo tela completa: Se sua aplicação exibe tanto uma janela barra de ferramentas e janela padrão que são compatíveis com modo tela completa (opção Form has full screen mode Mac), regras de interface exige que esconda a barra de ferramentas quando uma janela padrão entra no modo tela completa. Para saber se uma janela mudou para modo tela completa, pode testar se o tamanho vertical é exatamente o mesmo que o tamanho da tela (ver o comando  HIDE TOOL BAR).

Este tipo de janela lhe permite gerar janelas flutuantes. A característica principal das janelas flutuantes é que permanecem no primeiro plano mesmo se o  usuário clicar em outra janela do processo. As janelas flutuantes são utilizadas geralmente para mostrar informação permanente ou barras de ferramentas.

 

Este tipo de janela é similar a Palette form window com a seguinte especificidade: em Windows, a janela flutuante será referenciada por um icone na barra de tarefas (em Windows, as paletas flutuantes regulares não se mostram na barra de tarefas).

Este tipo de janela é útil quando o banco de dados for executado em Modo SDI em Windows em Windows. Neste modo, as paletas flutuantes são ocultadas quando sua aplicação principal for movida ao fundo. Portanto, se sua interface de banco de dados for baseada em uma única janela flutuante (por exemplo, para mostrar uma vista de monitor), deve utilizar um Controller form window para referenciar a aplicação na barra de tarefas e ter certeza de que permanecerá acessível mesmo se tiver sido movido para o fundo.

Por exemplo

 $win:=Open form window("myMonitor";Controller form window;On the left;Vertically centered)

Nota: em macOS, este tipo de janela se comporta como uma Palette form window regular.

Esta opção está destinada a ser utilizada quando o banco de dados é executado em Modo SDI em Windows.

Neste contexto, todas as janelas de sua aplicação mostram de forma predeterminada a barra de menus do processo atual. Se desejar abrir uma janela sem barra de menus, deve agregar a constante Form has no menu bar ao parâmetro tipo. Por exemplo, este código cria uma janela de formulàrio plana sem barra de menu em uma aplicação SDI em Windows:

Nota: esta opção não tem efeito:

  • Em uma aplicação macOS,
  • Em uma aplicação Windows em modo MDI.

A opção de "tela completa" está disponível em macOS para as janelas de tipo de documento. Quando se utiliza esta opção, o botão "Tela completa" se mostra na esquina superior direita da janela: Quando o usuário fizer clique neste ícone, a janela passa a tela completa e 4D oculta automaticamente a barra de ferramentas principal.

Para utilizar esta opção, adicione a constante Form has full screen mode Mac ao parâmetro tipo. Por exemplo, este código cria uma janela formulário com um botão de tela completa em macOS:

 $win:=Open form window([Interface];"User_Choice";Plain form window+Form has full screen mode Mac)
 DIALOG([Interface];"User_Choice")

Nota: Sob Windows, esta opção não tem efeito.

Este tipo permite criar janelas com barras de rolagem personalizadas. Para saber mais, leia este blog.

  • Janela modal: Não
  • Pode ser movido: Sim (por código já que não há barra de título)
  • Pode ser redimensionada: Sim
  • Pode ser minimizada/maximizada ou zoo: Não
  • Tem um título: Não

Este tipo permite criar janelas com barras de rolagem personalizadas. Para saber mais, leia este blog.

  • Janela modal: Não
  • Pode ser movido: Sim (por código já que não há barra de título)
  • Pode ser redimensionada: Sim
  • Pode ser minimizada/maximizada ou zoo: Sim (por código já que não há barra de título)
  • Tem um título: Não

 



Ver também 

Form improvements (YouTube)
Open form window

 
PROPRIEDADES 

Produto: 4D
Tema: Janelas

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Modificado: 4D v16 R4
Modificado: 4D v20 R5

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v20 R7)