Páginas filhas
  • LGX - LLAYOUTMANAGER

Gerencia a distribuição dos componentes da tela, de forma alinha e organizada em colunas.

Gerencia a distribuição dos componentes da tela, de forma alinha e organizada em colunas.
Sua utilização dispensa a necessidade de definir o posicionamento absoluto dos componentes em tela, o ajuste é feito conforme o tamanho de seus componentes filhos.

A distribuição dos componentes visuais na tela é realizada através de linhas e colunas, definida no método COLUMNS_COUNT.
Se o leiaute foi definido com duas colunas, por exemplo, significa que em cada linha da tela poderá ter dois componentes, um ao lado do outro.

Uma vez definida a quantidade de colunas para o leiaute, não será mais possível alterá-la.


Sintaxe



LET l_layout_reference = _ADVPL_create_component( NULL, "LLAYOUTMANGER", < cContainerReference > )


Métodos GET



Métodos acessíveis utilizando a função _ADVPL_get_property, que permite recuperar e manipular os valores do componente: 


Método GET: CELL_SPACE

Retorna se está definida para adotar uma margem entre as colunas do leiaute.

Sintaxe



_ADVPL_get_property(< cReference >,"CELL_SPACE") => nHasCellSpace

Parâmetros



NomeTipoDescrição
nHasCellSpaceINTEGERIndicador que define uma margem entre as colunas do leiaute, sendo:
TRUE: será criada a margem entre as colunas do leiaute
FALSE: não será criada a margem entre as colunas do leiaute 

Exemplo



Exemplo
LET l_hasCellSpace = _ADVPL_set_property( < cReference >, "CELL_SPACE")



Método GET: COLUMNS_COUNT

Retorna a quantidade de colunas para cada linha do leiaute, esta quantidade define quantos componentes serão posicionados em uma mesma linha.

Sintaxe



_ADVPL_get_property(< cReference >,"COLUMNS_COUNT") => nColumnsCount

Parâmetros



NomeTipoDescrição
nColumnsCountINTEGERQuantidade de colunas colunas do leiaute


Exemplo



Exemplo
LET l_columns = _ADVPL_get_property( < cReference >, "COLUMNS_COUNT")



Método GET: EXPANSIBLE

Retorna se o próximo componente a ser adicionado no leiaute será expansível para que seja redimensionando conforme o tamanho da tela.

Sintaxe



_ADVPL_get_property(< cReference >,"EXPANSIBLE") => nExpansible

Retorno



NomeTipoDescrição
nExpansible INTEGERIndicador que define se o próximo componente como expansível, sendo:
TRUE: o próximo componente que será criado no leiaute será expansível
FALSE: o próximo componente que será criado no leiaute não será expansível


Exemplo



Exemplo
LET l_expansible =  _ADVPL_get_property( < cReference >, "EXPANSIBLE")



Método GET: HAS_EXPANSIBLE

Indica se o componente está expandido.

Sintaxe



_ADVPL_get_property(< cReference >,"HAS_EXPANSIBLE") => lIsExpansible

Parâmetros



NomeTipoDescriçãoObrigatório?
cReferenceCHARReferência do componente LLayoutManagerSim


Retornos



Tipo

Descrição

BOOLEANIndicador que define o componente está expandido.

Exemplo



Exemplo
LET l_isExpansible = _ADVPL_get_property( < cReference >, "HAS_EXPANSIBLE")



Método GET: HEIGHT

Retorna a altura do componente de layout.

Sintaxe



_ADVPL_set_property(< cReference >,"HEIGHT" ) nHeight


Parâmetros



NomeTipoDescriçãoObrigatório?
cReferenceCHARReferência do componente LLayoutManagerSim

Retornos



NomeTipoDescrição
nHeight INTEGERAltura do componente de layout


Exemplo



Exemplo
LET l_height = _ADVPL_get_property( < cReference >, "HEIGHT")



Método GET: ROW_SPACE

Retorna se foi definida para existir margem entre as linhas do leiaute.

Sintaxe



_ADVPL_set_property(< cReference >,"ROW_SPACE") => nHasRowSpace

Parâmetros



NomeTipoDescriçãoObrigatório?
cReferenceCHARReferência do componente LLayoutManagerSim


Retornos



NomeTipoDescrição
nHasRowSpaceINTEGERIndicador que define uma margem entre as linhas do leiaute, sendo:
TRUE: será criada a margem entre as linhas do leiaute
FALSE: não será criada a margem entre as linhas do leiaute 


Exemplo



Exemplo
LET l_hasRowSpace = _ADVPL_set_property( < cReference >, "ROW_SPACE")



Método GET: WIDTH

Retorna a largura do componente de layout.


Sintaxe



_ADVPL_get_property(< cReference >,"WIDTH") => cWidth

Parâmetros



NomeTipoDescriçãoObrigatório?
cReferenceCHARReferência do componente LLayoutManagerSim

Retornos



NomeTipoDescrição
nWidth INTEGERLargura do componente de layout.

Exemplo



Exemplo
LET l_width = _ADVPL_set_property( < cReference >, "WIDTH")




Métodos SET



Métodos acessíveis através da função _ADVPL_set_property que permite alterar e manipular os valores do componente:


Método SET: ADD_EMPTY_COLUMN

Adiciona uma coluna vazia no leiaute, pulando uma coluna na distribuição dos componentes.

Sintaxe



CALL _ADVPL_set_property(< cReference >,"ADD_EMPTY_COLUMN", < nWidth > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nWidth INTEGERLargura da coluna que será adicionadaNão

20


Exemplo



Exemplo
CALL _ADVPL_set_property( < cReference >, "ADD_EMPTY_COLUMN", 15)



Método SET: ADD_EMPTY_ROW

Adiciona uma linha vazia no leiaute, pulando uma linha na distribuição dos componentes.

Sintaxe



CALL _ADVPL_set_property(< cReference >,"ADD_EMPTY_ROW", < nHeight > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nHeight INTEGERAltura da linha que será adicionadaNão

20


Exemplo



Exemplo
CALL _ADVPL_set_property( < cReference >, "ADD_EMPTY_ROW", 10)



Método SET: APPLY_LAYOUT

Aplica o leiaute, redimensionando e posicionando os componentes em tela.

Sintaxe



CALL _ADVPL_set_property(< cReference >,"APPLY_LAYOUT", < nRecursive > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nRecursive INTEGERIndicador que define se a aplicação do leiaute ser recursiva, sendo:
TRUE: a aplicação será recursiva, atualizando inclusive os leiautes criados anteriormente na janela
FALSE: a aplicação não será recursiva, atualizando apenas o leiaute atual
Não

FALSE


Exemplo



Exemplo
CALL _ADVPL_set_property( < cReference >, "APPLY_LAYOUT", TRUE)



Método SET: COLUMNS_COUNT

Define a quantidade de colunas para cada linha do leiaute, esta quantidade define quantos componentes serão posicionados em uma mesma linha.

Sintaxe



CALL _ADVPL_set_property(< cReference >,"COLUMNS_COUNT", < nColumns > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nColumns INTEGERQuantidade de colunas colunas do leiauteSim



Exemplo



Exemplo
CALL _ADVPL_set_property( < cReference >, "COLUMNS_COUNT", 2)



Método SET: CELL_SPACE

Define uma margem entre as colunas do leiaute.

Sintaxe



CALL _ADVPL_set_property(< cReference >,"CELL_SPACE", < nListDir > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nListDir INTEGERIndicador que define uma margem entre as colunas do leiaute, sendo:
TRUE: será criada a margem entre as colunas do leiaute
FALSE: não será criada a margem entre as colunas do leiaute 
Sim


Exemplo



Exemplo
CALL _ADVPL_set_property( < cReference >, "CELL_SPACE", TRUE )



Método SET: EXPANSIBLE

Indica se o próximo componente a ser adicionado no leiaute será expansível, redimensionando-o conforme o tamanho da tela.

Sintaxe



CALL _ADVPL_set_property(< cReference >,"EXPANSIBLE", < nExpansible > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nExpansible INTEGERIndicador que define se o próximo componente como expansível, sendo:
TRUE: o próximo componente que será criado no leiaute será expansível
FALSE: o próximo componente que será criado no leiaute não será expansível
Sim


Observações


Para correto funcionamento, o componente adicionado após a execução deste método deve ter alinhamento centralizado.

Exemplo



Exemplo
CALL _ADVPL_set_property( < cReference >, "EXPANSIBLE", TRUE)



Método SET: MARGIN

Define uma margem entre o componente pai e os componentes do leiaute.

Sintaxe



CALL _ADVPL_set_property(< cReference >,"MARGIN", < nMargin > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nMargin INTEGERIndicador que define uma margem entre o componente pai e os componente do leiaute, sendo:
TRUE: será criada a margem entre o componente pai e os componentes do leiaute
FALSE: não será criada a margem entre o componente pai e os componentes do leiaute
Sim



Exemplo



Exemplo
CALL _ADVPL_set_property( < cReference >, "MARGIN", TRUE)



Método SET: MAX_SIZE

Define o tamanho máximo para redimensionamento do componente pai.
Durante o redimensionamento e reposicionamento dos componentes na tela, o leiaute irá  considerar o tamanho definido neste método.

Sintaxe



CALL _ADVPL_set_property(< cReference >,"MAX_SIZE",  < nWidth >, < nHeight > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nWidth INTEGERLargura máxima para redimensionamento do componente paiSim


nHeight INTEGERAltura máxima para redimensionamento do componente paiSim


Exemplo



Exemplo
CALL _ADVPL_set_property( < cReference >, "MAX_SIZE", 30, 20)



Método SET: MAX_HEIGHT

Define a altura máxima para redimensionamento do componente pai.
Durante o redimensionamento e reposicionamento dos componentes na tela, o leiaute irá  considerar o tamanho definido neste método.

Sintaxe



CALL _ADVPL_set_property(< cReference >,"MAX_HEIGHT", < nHeight > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nHeight INTEGERAltura máxima para redimensionamento do componente paiSim


Exemplo



Exemplo
CALL _ADVPL_set_property( < cReference >, "MAX_HEIGHT", 27)



Método SET: MAX_WIDTH

Define a largura máxima para redimensionamento do componente pai.
Durante o redimensionamento e reposicionamento dos componentes na tela, o leiaute irá  considerar o tamanho definido neste método.

Sintaxe



CALL _ADVPL_set_property(< cReference >,"MAX_WIDTH", < nWidth > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nWidth INTEGERLargura máxima para redimensionamento do componente paiSim


Exemplo



Exemplo
CALL _ADVPL_set_property( < cReference >, "MAX_WIDTH", 20 )



Método SET: MIN_HEIGHT

Define a altura mínima para redimensionamento do componente pai.
Durante o redimensionamento e reposicionamento dos componentes na tela, o leiaute irá  considerar o tamanho definido neste método.

Sintaxe



CALL _ADVPL_set_property(< cReference >,"MIN_HEIGHT", < nHeight > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nHeight INTEGERAltura mínima para redimensionamento do componente paiSim


Exemplo



Exemplo
CALL _ADVPL_set_property( < cReference >, "MIN_HEIGHT", 30 )



Método SET: MIN_SIZE

Define o tamanho mínimo para redimensionamento do componente pai.
Durante o redimensionamento e reposicionamento dos componentes na tela, o leiaute irá  considerar o tamanho definido neste método.

Sintaxe



CALL _ADVPL_set_property(< cReference >,"MIN_SIZE",  < nWidth >, < nHeight >  )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nWidthINTEGERLargura mínima para redimensionamento do componente paiSim


nHeightINTEGERAltura mínima para redimensionamento do componente paiSim


Exemplo



Exemplo
CALL _ADVPL_set_property( < cReference >, "MIN_SIZE", 24,15 )



Método SET: MIN_WIDTH

Define a largura mínima para redimensionamento do componente pai.
Durante o redimensionamento e reposicionamento dos componentes na tela, o leiaute irá  considerar o tamanho definido neste método.

Sintaxe



CALL _ADVPL_set_property(< cReference >,"MIN_WIDTH", < nWidth > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nWidth INTEGERLargura mínima para redimensionamento do componente paiSim


Exemplo


Exemplo
CALL _ADVPL_set_property( < cReference >, "MIN_WIDTH", 10 )



Método SET: ROW_SPACE

Define uma margem entre as linhas do leiaute.

Sintaxe



CALL _ADVPL_set_property(< cReference >,"ROW_SPACE", < nMargin > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nMargin INTEGERIndicador que define uma margem entre as linhas do leiaute, sendo:
TRUE: será criada a margem entre as linhas do leiaute
FALSE: não será criada a margem entre as linhas do leiaute 
Sim



Exemplo



Exemplo
CALL _ADVPL_set_property( < cReference >, "ROW_SPACE", TRUE )





Exemplo



Clique no link na lateral direita para expandir o código de exemplo.

Código de exemplo do Componente LLayoutManager
DEFINE ma_tela ARRAY[100] OF
               RECORD
                   coluna CHAR(200)
               END RECORD

#------------------------#
 FUNCTION layoutmanager()
#------------------------#
     DEFINE l_dialog_reference,
            l_panel_reference,
            l_layout_reference,
            l_layout_field_reference,
            l_label_reference,
            l_component_reference,
            l_button_reference,
            l_table_reference,
            l_column_reference VARCHAR(10)

     DEFINE l_ind SMALLINT

     FOR l_ind = 1 TO 100
         LET ma_tela[l_ind].coluna = "Coluna ", l_ind USING "&&&", "."
     END FOR

     LET l_dialog_reference = _ADVPL_create_component(NULL,"LDIALOG")
     CALL _ADVPL_set_property(l_dialog_reference,"SIZE",640,480)
     CALL _ADVPL_set_property(l_dialog_reference,"TITLE","Exemplo de Utilização: LLAYOUTMANAGER")

     LET l_panel_reference = _ADVPL_create_component(NULL,"LPANEL",l_dialog_reference)
     CALL _ADVPL_set_property(l_panel_reference,"ALIGN","TOP")

     LET l_layout_reference = _ADVPL_create_component(NULL,"LLAYOUTMANAGER",l_panel_reference)
     CALL _ADVPL_set_property(l_layout_reference,"MARGIN",TRUE)
     CALL _ADVPL_set_property(l_layout_reference,"COLUMNS_COUNT",2)

     LET l_label_reference = _ADVPL_create_component(NULL,"LLABEL",l_layout_reference)
     CALL _ADVPL_set_property(l_label_reference,"TEXT","Empresa:")

     LET l_panel_reference = _ADVPL_create_component(NULL,"LPANEL",l_layout_reference)
     CALL _ADVPL_set_property(l_panel_reference,"ALIGN","CENTER")

     LET l_layout_field_reference = _ADVPL_create_component(NULL,"LLAYOUTMANAGER",l_panel_reference)
     CALL _ADVPL_set_property(l_layout_field_reference,"MARGIN",FALSE)
     CALL _ADVPL_set_property(l_layout_field_reference,"COLUMNS_COUNT",3)

     LET l_component_reference = _ADVPL_create_component(NULL,"LTEXTFIELD",l_layout_field_reference)
     CALL _ADVPL_set_property(l_component_reference,"LENGTH",2)
     CALL _ADVPL_set_property(l_component_reference,"PICTURE","@!")
     CALL _ADVPL_set_property(l_component_reference,"TOOLTIP","Código da empresa.")

     LET l_button_reference = _ADVPL_create_component(NULL,"LIMAGEBUTTON",l_layout_field_reference)
     CALL _ADVPL_set_property(l_button_reference,"IMAGE","BTPESQ")
     CALL _ADVPL_set_property(l_button_reference,"SIZE",24,20)

     LET l_component_reference = _ADVPL_create_component(NULL,"LTEXTFIELD",l_layout_field_reference)
     CALL _ADVPL_set_property(l_component_reference,"LENGTH",30)
     CALL _ADVPL_set_property(l_component_reference,"PICTURE","@!")
     CALL _ADVPL_set_property(l_component_reference,"TOOLTIP","Descrição da empresa informada.")

     LET l_label_reference = _ADVPL_create_component(NULL,"LLABEL",l_layout_reference)
     CALL _ADVPL_set_property(l_label_reference,"TEXT","CNPJ:")

     LET l_component_reference = _ADVPL_create_component(NULL,"LTEXTFIELD",l_layout_reference)
     CALL _ADVPL_set_property(l_component_reference,"LENGTH",19)
     CALL _ADVPL_set_property(l_component_reference,"PICTURE","##.###.###/####-##")
     CALL _ADVPL_set_property(l_component_reference,"TOOLTIP","CNPJ da empresa informada.")

     LET l_label_reference = _ADVPL_create_component(NULL,"LLABEL",l_layout_reference)
     CALL _ADVPL_set_property(l_label_reference,"TEXT","Item:")

     LET l_panel_reference = _ADVPL_create_component(NULL,"LPANEL",l_layout_reference)
     CALL _ADVPL_set_property(l_panel_reference,"ALIGN","CENTER")

     LET l_layout_field_reference = _ADVPL_create_component(NULL,"LLAYOUTMANAGER",l_panel_reference)
     CALL _ADVPL_set_property(l_layout_field_reference,"MARGIN",FALSE)
     CALL _ADVPL_set_property(l_layout_field_reference,"COLUMNS_COUNT",3)

     LET l_component_reference = _ADVPL_create_component(NULL,"LTEXTFIELD",l_layout_field_reference)
     CALL _ADVPL_set_property(l_component_reference,"LENGTH",15)
     CALL _ADVPL_set_property(l_component_reference,"PICTURE","@!")
     CALL _ADVPL_set_property(l_component_reference,"TOOLTIP","Código do item.")

     LET l_button_reference = _ADVPL_create_component(NULL,"LIMAGEBUTTON",l_layout_field_reference)
     CALL _ADVPL_set_property(l_button_reference,"IMAGE","BTPESQ")
     CALL _ADVPL_set_property(l_button_reference,"SIZE",24,20)

     LET l_component_reference = _ADVPL_create_component(NULL,"LTEXTFIELD",l_layout_field_reference)
     CALL _ADVPL_set_property(l_component_reference,"LENGTH",36)
     CALL _ADVPL_set_property(l_component_reference,"PICTURE","@!")
     CALL _ADVPL_set_property(l_component_reference,"TOOLTIP","Descrição do item informada.")

     LET l_panel_reference = _ADVPL_create_component(NULL,"LPANEL",l_dialog_reference)
     CALL _ADVPL_set_property(l_panel_reference,"ALIGN","CENTER")

     LET l_layout_reference = _ADVPL_create_component(NULL,"LLAYOUTMANAGER",l_panel_reference)
     CALL _ADVPL_set_property(l_layout_reference,"COLUMNS_COUNT",1)
     CALL _ADVPL_set_property(l_layout_reference,"EXPANSIBLE",TRUE)

     LET l_table_reference = _ADVPL_create_component(NULL,"LTABLEEX",l_layout_reference)
     CALL _ADVPL_set_property(l_table_reference,"ALIGN","CENTER")

     LET l_column_reference = _ADVPL_create_component(NULL,"LTABLECOLUMNEX",l_table_reference)
     CALL _ADVPL_set_property(l_column_reference,"HEADER","Coluna")
     CALL _ADVPL_set_property(l_column_reference,"VARIABLE","coluna")

     CALL _ADVPL_set_property(l_table_reference,"SET_ROWS",ma_tela,100)

     CALL _ADVPL_set_property(l_dialog_reference,"ACTIVATE",TRUE)
 END FUNCTION


Visualização