Freeform é o conjunto de componentes para o desenvolvimento de novas funcionalidades e programas no Logix, podendo ou não possuir interface gráfica.

Na criação de telas é comumente conhecido como “desenvolvimento à mãos livres”, onde a tela é definida e montada pelo desenvolvedor utilizando componentes visuais especializadas para o Logix a partir dos componentes visuais do AdvPL.

Além de possuir componentes visuais, o Freeform engloba um conjunto de outros componentes que podem ser utilizados para realizar integrações, execuções em THREADs, comunicação com WebServices e banco de dados entre outras funcionalidades.

Para utilizar um componente Freeform no Logix são utilizadas são utilizadas três funções AdvPL simples: create_component, set_property e get_property.

Criando um componente

A função AdvPL create_component permite criar uma instância do componente Freeform em memória e retorna o código de referência do componente criado. Esta função recebe por parâmetro o código de referência do componente que será criado, o nome do componente Freeform e o código de referência do componente pai (quando existir).

Por padrão, o primeiro parâmetro não é mais informado, passando sempre nulo, assim o código de referência será criado dinamicamente pelo framework evitando problemas de referências duplicadas.

Exemplo

FUNCTION vdp20000()
    DEFINE l_dlg_ref VARCHAR(10)
    DEFINE l_pnl_ref VARCHAR(10)
    # Componente sem componente pai.
    LET l_dlg_ref = _ADVPL_create_componente(NULL,"LDIALOG")
    
    # Componente com componente pai.
    LET l_pnl_ref = _ADVPL_create_componente(NULL,"LPANEL",l_dlg_ref)
END FUNCTION