FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Teclado en Pantalla
Posts: 883
Joined: Tue Oct 11, 2005 11:57 AM
Teclado en Pantalla
Posted: Tue Apr 01, 2014 07:39 PM

Como ya he preguntado en el foro en Ingles..

Alguien tiene experiencia usando teclados en pantallas, ya sea el OSK propio de Windows o alguno externo.
Tengo el ejemploque viene con FWH, pero si alguien ha hecho algo que pueda ( o quiera) compartir, para que reinventar la rueda.

Gracias de antemano.

Saludos

Desde Chile
Adolfo

;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
Posts: 476
Joined: Sat Feb 03, 2007 06:36 AM
Re: Teclado en Pantalla
Posted: Tue Apr 01, 2014 11:56 PM
Adolfo, mira si te sirve de algo este código:

Saludos.

Carlos.

Code (fw): Select all Collapse
//------------------------------------------------------------------------------ 
FUNCTION KeyBoardVirtual( cStringTexto, cTitle ) 
  LOCAL oDlgVirtual, oFontDlg, oFontGet, oGetTexto, cTexto, aBtnsKeys, lSalida 

  DEFAULT cTitle := " Teclado Virtual..." 
  
  aBtnsKeys:= ARRAY(49) 
  lSalida  := .f.
  cTexto   := Space(78) 

  IF cStringTexto != NIL 
     cTexto:= PADR( ALLTRIM( cStringTexto ), 78 ) 
  ENDIF 

  DEFINE FONT oFontDlg NAME "Arial" SIZE 0, -13 BOLD 
  DEFINE FONT oFontGet NAME "Arial" SIZE 0, -16 BOLD 

  DEFINE DIALOG oDlgVirtual RESOURCE "DLG_TECLADO"; 
         TITLE cTitle

  REDEFINE GROUP ID 300 COLOR GetSysColor( COLOR_ACTIVECAPTION ) TRANSPARENT OF  oDlgVirtual 
  REDEFINE GROUP ID 350 COLOR GetSysColor( COLOR_ACTIVECAPTION ) TRANSPARENT OF  oDlgVirtual 

  REDEFINE GET oGetTexto VAR cTexto ID 550 FONT oFontGet OF  oDlgVirtual 

  REDEFINE BUTTON  aBtnsKeys[ 1] ID 500 OF  oDlgVirtual PROMPT "Q" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("Q")) ) 

  REDEFINE BUTTON  aBtnsKeys[ 2] ID 501 OF  oDlgVirtual PROMPT "W" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("W")) ) 

  REDEFINE BUTTON  aBtnsKeys[ 3] ID 502 OF  oDlgVirtual PROMPT "E" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("E")) ) 

  REDEFINE BUTTON  aBtnsKeys[ 4] ID 503 OF  oDlgVirtual PROMPT "R" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("R")) ) 

  REDEFINE BUTTON  aBtnsKeys[ 5] ID 504 OF  oDlgVirtual PROMPT "T" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("T")) ) 

  REDEFINE BUTTON  aBtnsKeys[ 6] ID 505 OF  oDlgVirtual PROMPT "Y" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("Y")) ) 

  REDEFINE BUTTON  aBtnsKeys[ 7] ID 506 OF  oDlgVirtual PROMPT "U" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("U")) ) 

  REDEFINE BUTTON  aBtnsKeys[ 8] ID 507 OF  oDlgVirtual PROMPT "I" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("I")) ) 

  REDEFINE BUTTON  aBtnsKeys[ 9] ID 508 OF  oDlgVirtual PROMPT "O" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("O")) ) 

  REDEFINE BUTTON  aBtnsKeys[10] ID 509 OF  oDlgVirtual PROMPT "P" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("P")) ) 

  REDEFINE BUTTON  aBtnsKeys[11] ID 510 OF  oDlgVirtual PROMPT "A" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("A")) ) 

  REDEFINE BUTTON  aBtnsKeys[12] ID 511 OF  oDlgVirtual PROMPT "S" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("S")) ) 

  REDEFINE BUTTON  aBtnsKeys[13] ID 512 OF  oDlgVirtual PROMPT "D" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("D")) ) 

  REDEFINE BUTTON  aBtnsKeys[14] ID 513 OF  oDlgVirtual PROMPT "F" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("F")) ) 

  REDEFINE BUTTON  aBtnsKeys[15] ID 514 OF  oDlgVirtual PROMPT "G" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("G")) ) 

  REDEFINE BUTTON  aBtnsKeys[16] ID 515 OF  oDlgVirtual PROMPT "H" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("H")) ) 

  REDEFINE BUTTON  aBtnsKeys[17] ID 516 OF  oDlgVirtual PROMPT "J" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("J")) ) 

  REDEFINE BUTTON  aBtnsKeys[18] ID 517 OF  oDlgVirtual PROMPT "K" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("K")) ) 

  REDEFINE BUTTON  aBtnsKeys[19] ID 518 OF  oDlgVirtual PROMPT "L" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("L")) ) 

  REDEFINE BUTTON  aBtnsKeys[20] ID 519 OF  oDlgVirtual PROMPT "Ñ" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("Ñ")) ) 

  REDEFINE BUTTON  aBtnsKeys[21] ID 520 OF  oDlgVirtual PROMPT "Z" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("Z")) ) 

  REDEFINE BUTTON  aBtnsKeys[22] ID 521 OF  oDlgVirtual PROMPT "X" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("X")) ) 

  REDEFINE BUTTON  aBtnsKeys[23] ID 522 OF  oDlgVirtual PROMPT "C" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("C")) ) 

  REDEFINE BUTTON  aBtnsKeys[24] ID 523 OF  oDlgVirtual PROMPT "V" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("V")) ) 

  REDEFINE BUTTON  aBtnsKeys[25] ID 524 OF  oDlgVirtual PROMPT "B" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("B")) ) 

  REDEFINE BUTTON  aBtnsKeys[26] ID 525 OF  oDlgVirtual PROMPT "N" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("N")) ) 

  REDEFINE BUTTON  aBtnsKeys[27] ID 526 OF  oDlgVirtual PROMPT "M" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("M")) ) 

  REDEFINE BUTTON  aBtnsKeys[28] ID 527 OF  oDlgVirtual PROMPT "(,)" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC(",")) ) 

  REDEFINE BUTTON  aBtnsKeys[29] ID 528 OF  oDlgVirtual PROMPT "(.)" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC(".")) ) 

  REDEFINE BUTTON  aBtnsKeys[30] ID 529 OF  oDlgVirtual PROMPT "(-)" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("-")) ) 

  REDEFINE BUTTON  aBtnsKeys[31] ID 551 OF  oDlgVirtual PROMPT "7" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("7")) ) 

  REDEFINE BUTTON  aBtnsKeys[32] ID 552 OF  oDlgVirtual PROMPT "8" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("8")) ) 

  REDEFINE BUTTON  aBtnsKeys[33] ID 553 OF  oDlgVirtual PROMPT "9" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("9")) ) 

  REDEFINE BUTTON  aBtnsKeys[34] ID 554 OF  oDlgVirtual PROMPT "4" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("4")) ) 

  REDEFINE BUTTON  aBtnsKeys[35] ID 555 OF  oDlgVirtual PROMPT "5" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("5")) ) 

  REDEFINE BUTTON  aBtnsKeys[36] ID 556 OF  oDlgVirtual PROMPT "6" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("6")) ) 

  REDEFINE BUTTON  aBtnsKeys[37] ID 557 OF  oDlgVirtual PROMPT "1" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("1")) ) 

  REDEFINE BUTTON  aBtnsKeys[38] ID 558 OF  oDlgVirtual PROMPT "2" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("2")) ) 

  REDEFINE BUTTON  aBtnsKeys[39] ID 559 OF  oDlgVirtual PROMPT "3" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("3")) ) 

  REDEFINE BUTTON  aBtnsKeys[40] ID 560 OF  oDlgVirtual PROMPT "0" ; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("0")) ) 

  REDEFINE BUTTON  aBtnsKeys[41] ID 561 OF  oDlgVirtual PROMPT "Supr"; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyDown(VK_DELETE) ) 

  REDEFINE BUTTON  aBtnsKeys[42] ID 531 OF  oDlgVirtual PROMPT "Barra espaciadora"; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC(" ")) ) 

  REDEFINE BUTTON  aBtnsKeys[43] ID 530 OF  oDlgVirtual PROMPT "("; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC("(")) ) 

  REDEFINE BUTTON  aBtnsKeys[44] ID 532 OF  oDlgVirtual PROMPT ")"; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyChar(ASC(")")) ) 

  REDEFINE BUTTON  aBtnsKeys[45] ID 563 OF  oDlgVirtual PROMPT "<- Retroceso"; 
           ACTION (  oGetTexto:SetFocus(),  oGetTexto:KeyDown(VK_BACK) ) 

  REDEFINE BUTTON  aBtnsKeys[46] ID 533 OF  oDlgVirtual PROMPT "<-"; 
           ACTION (  , oGetTexto:SetFocus(), oGetTexto:KeyDown(VK_LEFT)) 

  REDEFINE BUTTON  aBtnsKeys[47] ID 535 OF  oDlgVirtual PROMPT "->"; 
           ACTION (  , oGetTexto:SetFocus() ,oGetTexto:KeyDown(VK_RIGHT) ) 

  REDEFINE BUTTON  aBtnsKeys[48] ID 534 OF  oDlgVirtual; 
           PROMPT "Enter" 

  REDEFINE BUTTON  aBtnsKeys[49] ID 562 OF  oDlgVirtual; 
           PROMPT "E" + CRLF + "n"  + CRLF + "t"  + CRLF + "e"  + CRLF + "r"; 
           ACTION ( lSalida:= .t., oDlgVirtual:End() ) 
           
  AEVAL(  aBtnsKeys, {| oBtn | oBtn:oFont:=  oFontDlg } ) 

  oDlgVirtual:lHelpIcon:= .F. 

  ACTIVATE DIALOG  oDlgVirtual ; 
           ON PAINT oGetTexto:SetFocus(); 
           VALID  lSalida 

  IF lSalida 
     AEVAL(  aBtnsKeys, {| oBtn | oBtn:End() } ) 
     aBtnsKeys:= NIL 
  ENDIF 

RETURN cTexto


Este es le .rc:

Code (fw): Select all Collapse
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
DLG_TECLADO DIALOG 35, 30, 596, 207
STYLE DS_MODALFRAME | DS_SETFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_THICKFRAME | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Sans Serif"
{
    PUSHBUTTON      "Q", 500, 9, 43, 42, 34
    EDITTEXT        550, 10, 14, 427, 24, ES_AUTOHSCROLL
    GROUPBOX        "", 300, 4, 3, 440, 187
    PUSHBUTTON      "W", 501, 52, 43, 42, 34
    PUSHBUTTON      "E", 502, 95, 43, 42, 34
    PUSHBUTTON      "R", 503, 138, 43, 42, 34
    PUSHBUTTON      "7", 551, 454, 12, 42, 34
    PUSHBUTTON      "8", 552, 497, 12, 42, 34
    PUSHBUTTON      "9", 553, 540, 12, 42, 34
    PUSHBUTTON      "4", 554, 454, 47, 42, 34
    PUSHBUTTON      "5", 555, 497, 47, 42, 34
    PUSHBUTTON      "6", 556, 540, 47, 42, 34
    PUSHBUTTON      "1", 557, 454, 82, 42, 34
    PUSHBUTTON      "2", 558, 497, 82, 42, 34
    PUSHBUTTON      "3", 559, 540, 82, 42, 34
    PUSHBUTTON      "0", 560, 454, 117, 42, 34
    PUSHBUTTON      "Supr", 561, 497, 117, 42, 34
    PUSHBUTTON      "Y", 505, 224, 43, 42, 34
    PUSHBUTTON      "T", 504, 181, 43, 42, 34
    PUSHBUTTON      "U", 506, 267, 43, 42, 34
    PUSHBUTTON      "I", 507, 310, 43, 42, 34
    PUSHBUTTON      "O", 508, 353, 43, 42, 34
    PUSHBUTTON      "A", 510, 9, 78, 42, 34
    PUSHBUTTON      "S", 511, 52, 78, 42, 34
    PUSHBUTTON      "D", 512, 95, 78, 42, 34
    PUSHBUTTON      "F", 513, 138, 78, 42, 34
    PUSHBUTTON      "H", 515, 224, 78, 42, 34
    PUSHBUTTON      "G", 514, 181, 78, 42, 34
    PUSHBUTTON      "J", 516, 267, 78, 42, 34
    PUSHBUTTON      "K", 517, 310, 78, 42, 34
    PUSHBUTTON      "L", 518, 353, 78, 42, 34
    PUSHBUTTON      "Z", 520, 9, 113, 42, 34
    PUSHBUTTON      "X", 521, 52, 113, 42, 34
    PUSHBUTTON      "C", 522, 95, 113, 42, 34
    PUSHBUTTON      "V", 523, 138, 113, 42, 34
    PUSHBUTTON      "N", 525, 224, 113, 42, 34
    PUSHBUTTON      "B", 524, 181, 113, 42, 34
    PUSHBUTTON      "M", 526, 267, 113, 42, 34
    PUSHBUTTON      "coma (,)", 527, 310, 113, 42, 34
    PUSHBUTTON      "punto (.)", 528, 353, 113, 42, 34
    PUSHBUTTON      "P", 509, 396, 43, 42, 34
    PUSHBUTTON      "Ñ", 519, 397, 78, 42, 34
    PUSHBUTTON      "guion (-)", 529, 397, 113, 42, 34
    PUSHBUTTON      "<-", 533, 267, 148, 42, 34
    PUSHBUTTON      "ENTER", 534, 353, 148, 85, 34
    PUSHBUTTON      "(", 530, 9, 148, 41, 34
    PUSHBUTTON      ")", 532, 52, 148, 42, 34
    PUSHBUTTON      "Enter", 562, 540, 117, 42, 69
    PUSHBUTTON      "<- Retroceso", 563, 454, 152, 85, 34
    GROUPBOX        "", 350, 449, 3, 140, 187
    PUSHBUTTON      "Barra espaciadora", 531, 95, 148, 170, 34
    PUSHBUTTON      "->", 535, 310, 148, 42, 34
}
Posts: 883
Joined: Tue Oct 11, 2005 11:57 AM
Re: Teclado en Pantalla
Posted: Wed Apr 02, 2014 01:22 AM

Carlos

Muchisimas Gracias.... pruebo y te comento

Saludos

Desde Chile
Adolfo

PD: Acabamos de tener un terremoto en el Norte de Chile cercano a los 8.3 grados Richter... fuerza a mi compatriotas.

;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650

Continue the discussion