Descrição:
Classe responsável por criar um teclado virtual alfanumérico ou numérico.


Métodos:

New() 
Descrição:
Método de construção do objeto TKeyBoard

Sintaxe:
TKeyboard():New( nTop, nLeft, nType, oDlg, cSource, lLogin ) → 

Parâmetros

NomeTipoDescriçãoObrigatório
nTopNuméricoTamanho em relação ao topo do objeto
nLeftNuméricoTamanho em relação a esquerda do objeto
nTypeNuméricoTipo do teclado (1 - Numérico | 2 - AlfaNumérico)
oDlgObjetoObjeto que será montado o teclado
cSourceCaracterNome que será somado ao png utilizado as teclas para apresentação dos botões (cSource + "key1.png")
lLogin LógicoCompatibilidade


Exemplo
oKey := TKeyboard():New( 050, 10, 2, oDlg )


• KeyNumber() •
Descrição
Método de atribuição das teclas do teclado tipo numérico

Sintaxe

TKeyboard():KeyNumber( ) → 

Exemplo
oKey:KeyNumber()


• KeyAlfaNumber() •
Descrição
Método de atribuição das teclas do teclado tipo alfanumérico

Sintaxe
TKeyboard():KeyAlfaNumber( ) → 

Exemplo
oKey:KeyAlfaNumber()


• AddKey() •
Descrição
Método de adição de uma tecla ao objeto

Sintaxe
TKeyboard():AddKey( cKey, nTop, nLeft, nWidth, nHeight ) → 


Parâmetros

NomeTipoDescriçãoObrigatório
cKeyCaracterTecla que será adicionada (será utilizado na pesquisa do resource png (cSource+"key"+cKey+".PNG"))
nTopNuméricoPosição em relação ao topo do objeto
nLeftNuméricoPosição em relação a esquerda do objeto
nWidthNuméricoIndica a largura em pontos do objeto
nHeight NuméricoIndica a altura em pontos do objeto


Exemplo
oKey:AddKey( "1", 0, 20, 5, 5 )


• SetEnter() •
Descrição
Método de atribuição de ação ao botão Enter

Sintaxe

TKeyboard():SetEnter( uEnterAct ) → 

Parâmetros

NomeTipoDescriçãoObrigatório
uEnterAct
Ação que será atribuída ao botão Enter


Exemplo
oKey:SetEnter( { || MsgInfo( oKey:GetContext(), "Conteúdo do GET posicionado" ) } )


• SetVars() •
Descrição
Método de atribuição do objeto que sofrerá ação do teclado

Sintaxe

TKeyboard():SetVars( oObject, nSize ) → 

Parâmetros

NomeTipoDescriçãoObrigatório
oObjectObjetoObjeto que será utilizado para receber ação do teclado
nSize NuméricoTamanho máximo de caracteres que será atribuído (válido somente para tipo de teclado numérico)


Exemplo
oKey:SetVars( oGet1, 10 )


• Click() •
Descrição

Método de execução do click no teclado

Sintaxe
TKeyboard():Click( cKey, nKey ) → 

Parâmetros

NomeTipoDescriçãoObrigatório
cKeyCaracterTecla acionada através do teclado
nKey NuméricoNúmero relacionado a tecla (válido somente para tipo AlfaNumérico)


Exemplo
oKey:Click( "key1", 1 )


• GetContext() •
Descrição

Método de que retorna o conteúdo do texto do objeto setado

Sintaxe
TKeyboard():GetContext( ) → 

Exemplo
oKey:GetContext()


Exemplo geral de uso da classe

#include "protheus.ch"
//--------------------------------------------------------
/*/{Protheus.doc} pocTKeyBoard
	Exemplo de utilização da classe TKeyBoard

@author framework
@version 1.0
/*/
//--------------------------------------------------------
User Function pocTKeyBoard()
    // -------------------------------------------------
    // Declaração das variáveis que serão utilizadas
    // -------------------------------------------------
    Local cGet1         := "                                  "
    Local cGet2         := "                                  "
    Local cGet3         := "                                  "
    Local oDlg          := Nil
    Local oGet1         := Nil
    Local oGet2         := Nil
    Local oGet3         := Nil
    Local oSay1         := Nil
    Local oSay2         := Nil
    Local oSay3         := Nil
    Local oKey          := Nil
    Local lHasButton    := .T.
    // -------------------------------------
    // Fonte que será usada no objeto say
    // -------------------------------------
    oFont := TFont():New('Arial',,-14,.T.)
    // ------------------------------------------
    // Dialogo principal utilizada pelo teclado
    // ------------------------------------------
    oDlg  := TDialog():New( 180, 180, 550, 700, 'Exemplo TKeyBoard',,,,,,,,,.T. )
    // -----------------------------------
    // Criação do primeiro SAY e GET 
    // -----------------------------------
    oSay1 := TSay():New (006,011,{||'Get 01'},oDlg,,oFont,,,,.T.,,,200,20 )
    oGet1 := TGet():New( 015, 009, { | u | If( PCount() == 0, cGet1, cGet1 := u ) },oDlg, 070, 010, "!@",, 0, 16777215,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F. ,,"cGet1",,,,lHasButton  )
    // --------------------------------------------------------
    // Atribuição do objeto quando o foco for recebido no GET
    // --------------------------------------------------------
    oGet1:bGotFocus  := {|| oKey:SetVars( oGet1, 10 )}
    // -----------------------------------
    // Criação do segundo SAY e GET 
    // -----------------------------------
    oSay2 := TSay():New( 006,97,{||'Get 02'},oDlg,,oFont,,,,.T.,,,200,20 )
    oGet2 := TGet():New( 015, 95, { | u | If( PCount() == 0, cGet2, cGet2 := u ) },oDlg, 070, 010, "!@",, 0, 16777215,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F. ,,"cGet2",,,,lHasButton  )
    // --------------------------------------------------------
    // Atribuição do objeto quando o foco for recebido no GET
    // --------------------------------------------------------
    oGet2:bGotFocus  := {|| oKey:SetVars( oGet2, 6 )}
    // -----------------------------------
    // Criação do terceiro SAY e GET 
    // -----------------------------------
    oSay3 := TSay():New( 006,182,{||'Get 03'},oDlg,,oFont,,,,.T.,,,200,20 )
    oGet3 := TGet():New( 015, 180, { | u | If( PCount() == 0, cGet3, cGet3 := u ) },oDlg, 070, 010, "!@",, 0, 16777215,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F. ,,"cGet3",,,,lHasButton  )
    // -------------------------------------------------------
    // Atribuição do objeto quando o foco for recebido no GET
    // -------------------------------------------------------
    oGet3:bGotFocus  := {|| oKey:SetVars( oGet3, 6 )}
    // ---------------------------------------
    // Criação do objeto do teclado virtual
    // ---------------------------------------
    oKey := TKeyboard():New( 050, 10, 2, oDlg )
    // ----------------------------------------------------------------------
    // Informo o objeto que será utilizado pelo teclado na abertura da tela
    // ----------------------------------------------------------------------
    oKey:SetVars( oGet1, 10 )
    // -----------------------------------
    // Atribuo ação do ENTER no teclado
    // -----------------------------------
    oKey:SetEnter( { || MsgInfo( oKey:GetContext(), "Conteúdo do GET posicionado" ) } )
    // -------------------------------
    // Ativação do objeto de dialogo
    // -------------------------------
    oDlg:Activate( ,,,.T. )
Return




<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>

No Protheus 12, a classe está funcional somente a partir da LIB versão 20190820.