FWInputBox com quebra de linha | Ti Responde 0146

No vídeo de hoje, vamos demonstrar em como exibir uma tela para digitação de várias linhas, similar ao FWInputBox mas com um campo memo ao invés de um get simples.

A dúvida de hoje, nos perguntaram, se seria possível na FWInputBox termos quebra de linha igual com campos memo.

Pensando nisso, montamos esse exemplo, onde vamos demonstrar em como utilizar a função Aviso permitindo a digitação de conteúdo com quebra de linha.

Segue abaixo o vídeo exemplificando:

E abaixo o código fonte desenvolvido:

//Bibliotecas
#Include "tlpp-core.th"

//Declaração da namespace
Namespace custom.terminal.youtube

#Define CRLF Chr(13) + Chr(10) //Carriage Return Line Feed

/*/{Protheus.doc} User Function video0146
Exemplo de como acionar uma tela maior para digitar observações
@type  Function
@author Atilio
@since 24/04/2024
@example
    custom.terminal.youtube.u_video0146()
/*/

User Function video0146()
    Local aArea           := FWGetArea()       As Array
    Local cSmallerMessage := ""                As Character
    Local cBiggerMessage  := ""                As Character
    Local lEditMessage    := .T.               As Logical
    Local nButtonClick    := 0                 As Numeric
    Local cMessageToShow  := ""                As Character
    
    //Aciona a FWInputBox (sem quebra de linha)
    cSmallerMessage := FWInputBox("Insira uma mensagem:")

    //Agora aciona a Aviso (com quebra de linha)
    nButtonClick := Aviso("Título de Teste", @cBiggerMessage, {"OK", "Cancelar"}, 3, "Insira uma mensagem:", /*nRotAutDefault*/, /*cBitmap*/, lEditMessage)

    //Se clicou no cancelar, zera a mensagem
    If nButtonClick != 1
        cBiggerMessage := ""
    EndIf

    //Monta a mensagem que vai ser exibida e mostra com a ShowLog
    cMessageToShow := "Abaixo as mensagens que foram inseridas: " + CRLF + CRLF
    cMessageToShow += "** Menor - usando FWInputBox: " + CRLF
    cMessageToShow += cSmallerMessage + CRLF
    cMessageToShow += CRLF
    cMessageToShow += "** Maior - usando Aviso com edição: " + CRLF
    cMessageToShow += cBiggerMessage + CRLF
    ShowLog(cMessageToShow)    

    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