Sempre utilizei a função abaixo SEM problemas no CLIPPER. Agora, no XRABO, toda tecla que pressiono aparecem DUAS VEZES. Como faço pra resolver este problema?
Código: Selecionar todos
STATIC FUNCTION F02
MENSAGEM(lf,ci,cf,"<F02> PROCURA CLIENTE")
set key -1 to EDITPRO1
return .T.
*---------------------------*
STATIC FUNCTION EDITPRO1(PNOM,PVAR)
*---------------------------*
SET KEY -1 to
PRIVATE PROCURA,WCOD
PROCURA=""
MENSAGEM(lf,ci,cf,"Digite o Cliente:")
@ lf-01,ci+20 SAY " " COLOR('&vCOR_GET')
ENTER=3
SAVE SCRE TO TELA1
SELECT CLIENTE
DBSETORDER(2)
GOTO TOP
PRIVATE VETCAMPO[1], VETCAB[1]
VETCAMPO[1]:="LEFT(NOMCLI,30) + ' | ' + TRANS(CGCCLI, '@R 99.999.999/9999-99') + ' | ' + TRANS(CPFCLI, '@R 999.999.999-99')"
VETCAB[1] :="Cliente CGC CPF"
WIN(06,04,15,73,, vCOR_DBE, vCOR_DB1)
CORES(4)
dbedit(07,05,14,72,VETCAMPO,"FUNC22",,VETCAB,"=")
IF LASTKEY() = 27
set key -1 to EDITPRO1
restore screen from TELA1
MENSAGEM(lf,ci,cf,"<F02> PROCURA CLIENTE")
CORES(1)
RETURN .T.
ENDIF
DBsetorder(1)
vCODIGO := CODIGO
KEYBOARD CHR(13)
restore screen from TELA1
CORES(1)
RETURN .T.
*---------------*
FUNCTION FUNC22
*---------------*
PARAM A
B=LASTKEY()
IF A=1
TONE(77,5)
INKEY(.7)
ELSEIF A=2
TONE(77,5)
INKEY(.7)
ELSEIF A=3
TONE(77,5)
INKEY(.7)
RETURN(0)
ENDIF
IF B>31 .AND. B<126 .OR. B=8
CURSOR=SETCURSOR()
SETCURSOR(1)
WKSALVA=SAVESCREEN(23,00,23,79)
MENSAGEM(lf,ci,cf,"Digite o Cliente:")
@ lf-01,ci+20 SAY " " COLOR('&vCOR_GET')
DO WHIL .T.
IF LASTKEY()<>8
IF LASTKEY()<32 .OR. LASTKEY()>125
EXIT
ENDIF
ENDIF
IF LASTKEY()=8
TAM=LEN(PROCURA)-1
PROCURA=SUBSTR(PROCURA,1,TAM)
@ lf-01,ci+20 SAY " " COLOR('&vCOR_GET')
ELSE
PROCURA+=UPPER(CHR(B))
ENDIF
@ lf-01,ci+20 SAY PROCURA Color('&vCOR_GET')
DBSEEK(PROCURA,.T.)
KEYBOARD CHR(255)
RETURN(2)
ENDDO
ENDIF
SETCURSOR(0)
IF B==13
vCODIGO = CLIENTE->CODIGO
PROCURA=""
MENSAGEM(lf,ci,cf,"")
KEYBOARD CHR(13)
RETURN(0)
ENDIF
IF B=27
PROCURA=""
RETURN(0)
ENDIF
RETURN(1)


