Saltar para o conteúdo principal
Versão: Próximo

Open window

Open window ( esquerda ; superior ; direita ; inferior {; tipo {; titulo {; caixaFechar}}} ) : Integer

ParâmetroTipoDescrição
esquerdaIntegerCoordenada global da área de conteúdo da janela
superiorIntegerCoordenada superior da área de conteúdos da janela
direitaIntegerCoordenada direita da área de conteúdos da janela, ou -1 para usar tamanho padrão do formulário
inferiorIntegerCoordenada inferior da área de conteúdos da janela, ou -1 para usar tamanho padrão do formulário
tipoIntegertipo da janela
tituloTextTítulo da janela ou "" para usar título do formulário padrão
caixaFecharTextMétodo a chamar quando a caixa control-menu recebe um clique duplo, ou quanod a caixa Fechar é clicada
ResultadoIntegerNúmero de referência de janela

Esse comando não é seguro para thread e não pode ser usado em código adequado.

Descrição

Open window abre uma nova janela cujas dimensões são definidas pelos quatro primeiros parâmetros:

  • esquerda é a distância em pixels desde o lado esquerdo da janela da aplicação e o lado interior esquerdo da janela.
  • superior é a distância em píxels entre a altura da janela da aplicação e a borda superior do interior da janela.
  • direita é a distância em píxels entre o lado esquerdo da janela da aplicação e o lado interior direito da janela.
  • inferior é a distância em píxels desde a parte superior da janela da aplicação e borda interior inferior da janela. Nota de compatibilidade: Open window integra diferentes opções que evolucionaram através das versões, e agora só se conserva por razões de compatibilidade. Quando escrever código novo para a gestão de janelas, geralmente é mais prático utilizar o comando Open form window, que se adapta melhor às interfaces atuais.

Se passar -1 em direita e inferior, lhe indica a 4D que redimensione automaticamente a janela sob as seguintes condições:

  • Você criou um formulário e definido susa opções de redimensionamento na janela de propriedadees do formulário no ambiente Desenho
  • Antes de chamar Open window, você selecionou o formulário utilizando o comando FORM SET INPUT, ao qual passou o parâmetro opcional *. Importante: este dimensionamento automático da janela ocorrerá apenas se realizar uma chamada anterior a FORM SET INPUT para o formulário a mostrar em a janela e se le passa o parâmetro opcional * a FORM SET INPUT.
  • O parâmetro tipo é opcional e define o tipo de janela que deseja mostrar, e corresponde às diferentes janelas apresentadas na seção Tipos de Janelas. Se o tipo passado for negativo, a janela será flutuante. Se o tipo não for especificado, o tipo 1 será utilizado como padrão.
  • O parâmetro titulo indica o título opcional da janela Se passar uma string vazia ("") em titulo, lhe indica a 4D que utilize os valores de introducidos na área Nome da janela da janela de Propriedadees do formulário no entorno Desenho para o título do formulário a mostrar em a janela.

Importante: o título como padrão do formulário se aplicará à janela apenas se chama previamente ao comando FORM SET INPUT para o formulário a mostrar e lhe passa o parâmetro opcional * a FORM SET INPUT.

  • O parâmetro caixaFechar é opcional e designa o método para fechar a janela. Se for especificado este parâmetro, a caixa do menu Control (Windows) ou a caixa Fechar (Macintosh) se adiciona à janela. Quando o usuário der um clique duplo na caixa de menu Control (Windows) ou clique na Caixa fechar (Macintosh), se chama ao método passado em caixaFechar.

Nota: também pode administrar o fechamento da janela desde o método do formulário mostrado na janela quando ocorrer um evento On Close Box. Para maior informação, consulte o comando Form event code

Se for aberta mais de uma janela para um processo, a última janela aberta é a janela ativa (do primeiro plano) para ese processo. Apenas pode ser modificada a informação dentro da janela ativa. Todas as demais janelas podem ser visualizadas. Quando o usuário digitar, a janela ativa sempre passará ao primeiro plano, se já não estiver lá.

Os formulários são mostrados ao interior de uma janela aberta. O texto passado ao comando MESSAGE também aparece na janela.

Open window devolve uma referência de janela de tipo WinRef, utilizável pelos comandos de gestão de janelas (ver seção "WinRef").

Exemplo 1

O método de projeto abaixo abre uma janela centrada na janela principal (Windows) ou na tela principal (Macintosh). Note que pode aceitar dois, três, ou quatro parâmetros:

  // Método de projeto OPEN CENTERED WINDOW
  // $1 – Largura da janela
  // $2 – Altura da janela
  // $3 – Tipo da janela (opcional)
  // $4 – Título da janela (opcional)
 $SW:=Screen width\2
 $SH:=(Screen height\2)
 $WW:=$1\2
 $WH:=$2\2
 Case of
    :(Count parameters=2)
       Open window($SW-$WW;$SH-$WH;$SW+$WW;$SH+$WH)
    :(Count parameters=3)
       Open window($SW-$WW;$SH-$WH;$SW+$WW;$SH+$WH;$3)
    :(Count parameters=4)
       Open window($SW-$WW;$SH-$WH;$SW+$WW;$SH+$WH;$3;$4)
 End case

Quando tiver escrito o método de projeto, pode utilizá-lo desta forma:

 OPEN CENTERED WINDOW(400;250;Movable dialog box;"Atualizar arquivos")
 DIALOG([Tabela de ferramentas];"UPDATE OPTIONS")
 CLOSE WINDOW
 If(OK=1)
  // ...
 End if

Exemplo 2

O exemplo abaixo abre uma janela flutuante que tenha uma caixa de menu Control (Windows) ou uma caixa de fechar (Macintosh). A janela é aberta na esquina superior direita da janela da aplicação.

 Open window(Screen width-149;33;Screen width-4;178;-Palette window;"";"caixaFechar")
 DIALOG([Dialogos];"Palheta de cores")

O método CloseColorPalette chama ao comando CANCEL:

 CANCEL

Exemplo 3

O exemplo abaixo abre uma janela cujo tamanho e título provém das propriedades do formulário mostrado na janela:

 FORM SET INPUT([Customers];"Add Records";*)
 $myWindow:=Open window(10;80;-1;-1;Plain window;"")
 Repeat
    ADD RECORD([Customers])
 Until(OK=0)

Lembre: para que a função Open window utilize automaticamente as propriedades do formulário, deve chamar a FORM SET INPUT com o parâmetro opcional * e as propriedades do formulário devem ter sido definidas em função desta utilização no ambiente Desenho


//``

#### Exemplo 4

Este exemplo ilustra o mecanismo de “atraso” de mostrar janelas em Mac OS X:

```4d
 $minhaJanela:=Open window(10;10;400;400;Sheet window)
  //Por enquanto, a janela é criada mas permanece oculta
 DIALOG([Tabela];"formDial")
  //O evento On Load é gerado e depois a janela é exibida; "descende" de debaixo da barra de título

Ver também

CLOSE WINDOW
Criar janela
Open form window