Criando uma barra com botões usando a EnchoiceBar – Maratona AdvPL e TL++ 153

Nesse vídeo demonstraremos a utilização da função EnchoiceBar, que serve para criar uma barra no topo de uma dialog com alguns botões.

Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zExe153
Cria uma barra na tela com botões como Confirmar, Cancelar e Outras Ações
@type Function
@author Atilio
@since 18/12/2022
@obs 
    Função EnchoiceBar
    Parâmetros
        + Nome da Dialog que a EnchoiceBar será vinculada
        + Ação ao clicar no botão Confirmar
        + Ação ao clicar no botão Cancelar
        + Se for .T. mostra uma mensagem de deseja realmente excluir
        + Botões do Outras Ações
        + Número do Recno que será posicionado da tabela
        + Tabela de onde esta sendo feito as operações
        + Ativa a função Mashups no Outras Ações
    Retorno
        Função não tem retorno

    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/

User Function zExe153()
    Local aArea       := FWGetArea()
    Local nJanAltu   := 200
    Local nJanLarg   := 600
    Local lDimPixels := .T.
    Local lCentraliz := .T.
    Local bBlocoOk   := {|| lOk := .T., oDlgAux:End()}
    Local bBlocoCan  := {|| lOk := .F., oDlgAux:End()}
    Local aOutrasAc  := { {"BMP", {|| Alert("Cliquei no 1")}, "Botão 1"}, {"BMP", {|| Alert("Cliquei no 2")}, "Botão 2"} }
    Local bBlocoIni  := {|| EnchoiceBar(oDlgAux, bBlocoOk, bBlocoCan, , aOutrasAc)}
    Local cJanTitulo := "Tela usando TDialog com EnchoiceBar"
    Private oDlgAux
    Private lOk      := .F.

    //Cria a dialog
    oDlgAux := TDialog():New(0, 0, nJanAltu, nJanLarg, cJanTitulo, , , , , , /*nCorFundo*/, , , lDimPixels)

    //Ativa e exibe a janela
    oDlgAux:Activate(, , , lCentraliz, , , bBlocoIni)

    //Se o retorno for positivo, foi clicado no botão Confirmar ao invés do Cancelar
    If lOk
        FWAlertSuccess("Foi clicado no botão Confirmar!", "OK")
    EndIf

    FWRestArea(aArea)
Return

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.

Deixe uma resposta

Terminal de Informação