Criando um editor através da TSimpleEditor – Maratona AdvPL e TL++ 509

Nesse vídeo demonstraremos a utilização da classe TSimpleEditor, que serve para criar um editor em tela, que aceita também HTML.

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

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zExe509
Cria uma caixa de texto grande para digitação / visualização (com algumas opções como exibir em html)
@type Function
@author Atilio
@since 04/04/2023
@see https://tdn.totvs.com/display/tec/TSimpleEditor
@obs 

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

User Function zExe509()
    Local aArea         := FWGetArea()
    Local nCorFundo     := RGB(238, 238, 238)
    Local nJanAltura    := 154
    Local nJanLargur    := 318 
    Local cJanTitulo    := 'Exemplo TSimpleEditor'
    Local lDimPixels    := .T. 
    Local lCentraliz    := .T. 
    Local nObjLinha     := 0
    Local nObjColun     := 0
    Local nObjLargu     := 0
    Local nObjAltur     := 0
    Private cFontNome   := 'Tahoma'
    Private oFontPadrao := TFont():New(cFontNome, , -12)
    Private oDialogPvt 
    Private bBlocoIni   := {|| /*fSuaFuncao()*/ } //Aqui voce pode acionar funcoes customizadas que irao ser acionadas ao abrir a dialog 
    //objeto0 
    Private oSimpEdit 
    Private cSimpEdit    := ''  
    //objeto1 
    Private oBtnObj1 
    Private cBtnObj1    := 'Confirmar'  
    Private bBtnObj1    := {|| MsgInfo('O texto digitado foi:' + CRLF + CRLF + oSimpEdit:RetText(), 'Atenção')}  
    
    //Cria a dialog
    oDialogPvt := TDialog():New(0, 0, nJanAltura, nJanLargur, cJanTitulo, , , , , , nCorFundo, , , lDimPixels)
    
        //Monta o texto que será exibido
        cSimpEdit := '<p>Olá.</p>' + CRLF
        cSimpEdit += '<p>Esse é um exemplo de <strong>mensagem em HTML</strong>.</p>' + CRLF
        cSimpEdit += '<p>Note que as <font color="red">tags foram interpretadas</font>.</p>' + CRLF

        //objeto0 - usando a classe TSimpleEditor
        nObjLinha := 7
        nObjColun := 6
        nObjLargu := 145
        nObjAltur := 40
        oPanelEdit := tPanel():New(nObjLinha, nObjColun, "", oDialogPvt, , , , RGB(000,000,000), RGB(254,254,254), nObjLargu, nObjAltur)
            oSimpEdit := TSimpleEditor():Create(oPanelEdit)
            oSimpEdit:lAutoIndent := .T.
            oSimpEdit:nWidth := oPanelEdit:nWidth
            oSimpEdit:nHeight := oPanelEdit:nHeight
            oSimpEdit:TextFormat(1) //1=Html; 2=Plain Text
            oSimpEdit:TextSize(11)
            oSimpEdit:Load(cSimpEdit)
            oSimpEdit:Refresh()

        //objeto1 - usando a classe TButton
        nObjLinha := 54
        nObjColun := 6
        nObjLargu := 75
        nObjAltur := 15
        oBtnObj1  := TButton():New(nObjLinha, nObjColun, cBtnObj1, oDialogPvt, bBtnObj1, nObjLargu, nObjAltur, , oFontPadrao, , lDimPixels)

    
    //Ativa e exibe a janela
    oDialogPvt:Activate(, , , lCentraliz, , , bBlocoIni)
    
    FWRestArea(aArea)
Return

Bom pessoal, por hoje é só.

Abraços e até 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.

2 Responses

  1. Kauan Santana disse:

    Muito bom o seu vídeo, gostei bastante, assim como os outros conteúdos do site.

    Estou desenvolvendo uma rotina que inclui componentes que aceitam CSS. Na documentação da TDN, observei que existem várias classes que herdam da classe TControl. Isso me levantou algumas dúvidas: todas as classes aceitam personalização com CSS? Existe alguma documentação oficial que mostra o relacionamento entre os componentes do QT e os componentes em TL++? Quais versões são aceitas? Quais atributos não funcionam no Protheus?

    Curto muito o seu trabalho!.

Deixe uma resposta

Terminal de Informação