Criando um teclado virtual com TKeyboard – Maratona AdvPL e TL++ 495

Nesse vídeo demonstraremos a utilização da função TKeyboard, que serve para criar um teclado virtual em uma tela.

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

//Bibliotecas
#Include "TOTVS.ch"
 
/*/{Protheus.doc} User Function zExe495
Cria um teclado virtual em uma Dialog
@type Function
@author Atilio
@since 04/04/2023
@obs 
 
    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/
 
User Function zExe495()
    Local aArea         := FWGetArea()
    Local nCorFundo     := RGB(238, 238, 238)
    Local nJanAltura    := 251
    Local nJanLargur    := 470 
    Local cJanTitulo    := 'Exemplo TKeyboard'
    Local lDimPixels    := .T. 
    Local lCentraliz    := .T. 
    Local nObjLinha     := 0
    Local nObjColun     := 0
    Local nObjLargu     := 0
    Local nObjAltur     := 0
    Local nTamanText    := 50
    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  
    Private oGetTeste 
    Private xGetTeste    := Space(nTamanText)
    Private oKey
     
     
    //Cria a dialog
    oDialogPvt := TDialog():New(0, 0, nJanAltura, nJanLargur, cJanTitulo, , , , , , nCorFundo, , , lDimPixels)
 
        //objeto1 - usando a classe TGet
        nObjLinha := 3
        nObjColun := 3
        nObjLargu := (nJanLargur/2) - 6
        nObjAltur := 10
        oGetTeste  := TGet():New(nObjLinha, nObjColun, {|u| Iif(PCount() > 0 , xGetTeste := u, xGetTeste)}, oDialogPvt, nObjLargu, nObjAltur, /*cPict*/, /*bValid*/, /*nClrFore*/, /*nClrBack*/, oFontPadrao, , , lDimPixels)
 
        //Definindo que quando o get for clicado, será vinculado ao teclado virtual
        oGetTeste:bGotFocus  := {|| oKey:SetVars(oGetTeste, nTamanText)}
 
        //Criando o teclado virtual
        nObjLinha := 19
        nObjColun := 3
        oKey := TKeyboard():New( nObjLinha, nObjColun, 2, oDialogPvt)
 
        //Definindo que ficará vinculado ao get criado anteriomente
        oKey:SetVars(oGetTeste, nTamanText)
 
        //Definindo uma ação ao clicar no -Enter-
        oKey:SetEnter({|| FWAlertInfo( oKey:GetContext(), "Teste TKeyboard")})
     
    //Ativa e exibe a janela
    oDialogPvt:Activate(, , , lCentraliz, , , bBlocoIni)
     
    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