- Criado por Danilo Basilio Medeiros, última alteração por Jandir Deodato De Souza Silva em 18 jul, 2019
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
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
nTop | Numérico | Tamanho em relação ao topo do objeto | |
nLeft | Numérico | Tamanho em relação a esquerda do objeto | |
nType | Numérico | Tipo do teclado (1 - Numérico | 2 - AlfaNumérico) | |
oDlg | Objeto | Objeto que será montado o teclado | |
cSource | Caracter | Nome que será somado ao png utilizado as teclas para apresentação dos botões (cSource + "key1.png") | |
lLogin | Lógico | Compatibilidade |
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
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cKey | Caracter | Tecla que será adicionada (será utilizado na pesquisa do resource png (cSource+"key"+cKey+".PNG")) | |
nTop | Numérico | Posição em relação ao topo do objeto | |
nLeft | Numérico | Posição em relação a esquerda do objeto | |
nWidth | Numérico | Indica a largura em pontos do objeto | |
nHeight | Numérico | Indica 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
Nome | Tipo | Descrição | Obrigató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
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
oObject | Objeto | Objeto que será utilizado para receber ação do teclado | |
nSize | Numérico | Tamanho 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
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cKey | Caracter | Tecla acionada através do teclado | |
nKey | Numérico | Nú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
No Protheus 12, a classe está funcional somente a partir da LIB versão 20190820.