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 (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

4 Responses

  1. Armando Neto disse:

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

  2. Mauricio disse:

    Funcionou perfeitamente, muito obrigado pelas ótimas dicas!!!

Deixe uma resposta