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.