Tirando o botão de fechar de uma Dialog em AdvPL

Olá pessoal…

Hoje vou mostrar como retirar o botão de fechar de uma MsDialog no AdvPL.

Ao criar uma MsDialog via AdvPL, ela automaticamente cria um botão de fechar na barra de título da janela, só que e se precisarmos criar uma janela, onde não queremos que o usuário feche?

Tomamos como exemplo, a janela que criei do Mini Fórmulas, com o seguinte código:

//Criando a janela
DEFINE MSDIALOG oDlgForm TITLE "zMiniForm - Execução de Fórmulas" FROM 000, 000  TO nJanAltu, nJanLarg COLORS 0, 16777215 PIXEL

Exemplo de Dialog

Para Resolver isso, adicionamos o estilo Modal Frame, usando o comando e a constante STYLE DS_MODALFRAME, conforme exemplo abaixo:

//Criando a janela
DEFINE MSDIALOG oDlgForm TITLE "zMiniForm - Execução de Fórmulas" FROM 000, 000  TO nJanAltu, nJanLarg COLORS 0, 16777215 PIXEL STYLE DS_MODALFRAME

Dialog sem o botão de fechar

Mas, a tecla ESC ainda funciona, sendo assim o usuário ainda pode fechar a janela, para desativar, altere o atributo lEscClose para falso logo após criar a janela, conforme exemplo abaixo:

oDlgForm:lEscClose := .F.

Bom pessoal, por hoje é só.
Abraços e até a próxima.

Dan Atilio (Daniel Atilio)
Especialista em Engenharia de Software pela FIB. Entusiasta de soluções Open Source. E blogueiro nas horas vagas.

2 Responses

  1. Armando Neto disse:

    Muito bom.
    Há tempos estava procurando uma saída para esta situação.
    Obrigado Atílio.

Deixe uma resposta