Page tree

Classe:LLayoutManager.prw
Herança: 
Sintaxe:
LET l_layout_reference = _ADVPL_create_component( NULL, "LLAYOUTMANGER", < cReference > )

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.

Métodos SET

 

ADD_EMPTY_COLUMN, [ nWidth ]
Adiciona uma coluna vazia na construção do leiaute.

 ADD_EMPTY_ROW, [ nHeight ]
Adiciona uma linha vazia na construção do leiaute.
 APPLY_LAYOUT, [ nRecursive ]
Aplica o leiaute, redimensionando e posicionando os componentes em tela.
 MARGIN, < nMargin >
Define uma margem entre o componente pai e os componentes do leiaute.
 COLUMNS_COUNT, < nColumns >
Define a quantidade de colunas para cada linha do leiaute.
 CELL_SPACE, < nMargin >
Define uma margem entre as colunas do leiaute.
 ROW_SPACE, < nMargin >
Define uma margem entre as linhas do leiaute.
 

MAX_SIZE, < nWidth >, < nHeight >
Define o tamanho máximo para redimensionamento do componente pai.

 MAX_WIDTH, < nWidth >
Define a largura máxima para redimensionamento do componente pai.
 MAX_HEIGHT, < nHeight >
Define a altura máxima para redimensionamento do componente pai.
 MIN_SIZE, < nWidth >, < nHeight >
Define o tamanho mínimo para redimensionamento do componente pai.
 MIN_WIDTH, < nWidth >
Define a largura mínima para redimensionamento do componente pai.
 MIN_HEIGHT, < nHeight >
Define a altura mínima para redimensionamento do componente pai.
 EXPANSIBLE, < nExpansible >
Indica se o próximo componente a ser incluso no leiaute será expansível.

ADD_EMPTY_COLUMN

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

Parâmetros:
nWidth [ opcional, padrão: 20 ]Largura da coluna que será adicionada
Sintaxe:
CALL _ADVPL_set_property( < cReference >, "ADD_EMPTY_COLUMN", [ nWidth ] )

ADD_EMPTY_ROW

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

Parâmetros:
nHeight [ opcional, padrão: 20 ]Altura da linha que será adicionada
Sintaxe:
CALL _ADVPL_set_property( < cReference >, "ADD_EMPTY_ROW", [ nHeight ] )

APPLY_LAYOUT

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

Parâmetros:
nRecursive [ opcional, padrão: FALSE ]Indicador 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
Sintaxe:
CALL _ADVPL_set_property( < cReference >, "APPLY_LAYOUT", [ nRecursive ] )

MARGIN

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

Parâmetros:
nMargin < obrigatório >Indicador 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
Sintaxe:
CALL _ADVPL_set_property( < cReference >, "MARGIN", < nMargin > )

COLUMNS_COUNT

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

Parâmetros:
nColumns < obrigatório >Quantidade de colunas colunas do leiaute
Sintaxe:
CALL _ADVPL_set_property( < cReference >, "COLUMNS_COUNT", < nColumns > )

CELL_SPACE

Define uma margem entre as colunas do leiaute.

Parâmetros:
nMargin < obrigatório >Indicador 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 
Sintaxe:
CALL _ADVPL_set_property( < cReference >, "CELL_SPACE", < nMargin > )

ROW_SPACE

Define uma margem entre as linhas do leiaute.

Parâmetros:
nMargin < obrigatório >Indicador 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 
Sintaxe:
CALL _ADVPL_set_property( < cReference >, "ROW_SPACE", < nMargin > )

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.

Parâmetros:
nWidth < obrigatório >Largura máxima para redimensionamento do componente pai
nHeight < obrigatório >Altura máxima para redimensionamento do componente pai
Sintaxe:
CALL _ADVPL_set_property( < cReference >, "MAX_SIZE", < nWidth >, < nHeight > )

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.

Parâmetros:
nWidth < obrigatório >Largura máxima para redimensionamento do componente pai
Sintaxe:
CALL _ADVPL_set_property( < cReference >, "MAX_WIDTH", < nWidth > )

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.

Parâmetros:
nHeight < obrigatório >Altura máxima para redimensionamento do componente pai
Sintaxe:
CALL _ADVPL_set_property( < cReference >, "MAX_HEIGHT", < nHeight > )

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.

Parâmetros:
nWidth < obrigatório >Largura mínima para redimensionamento do componente pai
nHeight < obrigatório >Altura mínima para redimensionamento do componente pai
Sintaxe:
CALL _ADVPL_set_property( < cReference >, "MIN_SIZE", < nWidth >, < nHeight > )

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.

Parâmetros:
nWidth < obrigatório >Largura mínima para redimensionamento do componente pai
Sintaxe:
CALL _ADVPL_set_property( < cReference >, "MIN_WIDTH", < nWidth > )

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.

Parâmetros:
nHeight < obrigatório >Altura mínima para redimensionamento do componente pai
Sintaxe:
CALL _ADVPL_set_property( < cReference >, "MIN_HEIGHT", < nHeight > )

EXPANSIBLE

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

Parâmetros:
nExpansible < obrigatório >Indicador 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
Sintaxe:
CALL _ADVPL_set_property( < cReference >, "EXPANSIBLE", < nExpansible > )

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

Métodos GET

Não existem métodos GET neste componente.

Exemplo de Utilização

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