on change en un get

on change en un get

Postby chocochester » Sat Feb 18, 2006 7:56 pm

Hola. Estoy usando un get con un on change, para que se actualice un say según lo que vaya escribiendo, pero se me borra el contenido del get cada vez que escribo algo. Digamos que solo me sale el ultimo caracter escrito.

@ 40, 55 GET OBJ[1] VAR ARTI[1] PIXEL SIZE 58,10 COLOR CLR_AMARILLO, CLR_AZULETE;
UPDATE VALID TRATAR_A(1) font ofontdlg OF EDICION; // ON CHANGE ACTUA_FAM();
PICTURE "@! XXXXXXXXXXXXX"
OBJ[1]:BKEYDOWN:={|nkey,nflags|ACTUA_FAM(NKEY)}

como veis he probado varias cosas ya

y esta es la función
FUNCTION ACTUA_FAM(NKEY)
//ARTI[1]+=CHR(NKEY) //ARTI[1]
MSGALERT(CHR(NKEY))
//ARTI[1]+=ALLTRIM(STR(LASTKEY()))
//MSGALERT(ARTI[1])
//MSGALERT(LASTKEY())
IF (LEN(ALLTRIM(ARTI[1])) >= 2)
SELECT 4
SEEK LEFT(ARTI[1],2)
MFAMILIA=CODIGO+" "+NOMBRE
ENDIF
IF (LEN(ALLTRIM(ARTI[1])) >= 4)
SELECT 41
SEEK RIGHT(LEFT(ARTI[1],4),2)
MSUBFAM=CODIGO+" "+NOMBRE
ENDIF
SELECT 1
OBJ[1]:REFRESH()
EDICION:UPDATE()
EDICION:REFRESH()
RETURN NIL

si descomento el msgalert, a veces va. Es como si quedara algo en algún buffer o algo así.
Gracias de antemano. Un saludo.
chocochester
 
Posts: 14
Joined: Mon Oct 24, 2005 3:24 pm

Postby James Bott » Sun Feb 19, 2006 3:22 am

Code: Select all  Expand view
oGet:bChange:={| nKey, nFlag, self| msgInfo( getLastKey( nKey, nFlag, oGet) ) }

function getLastKey( nKey, nFlag, oGet)
  local nLastKey := if( getKeyState(VK_SHIFT) .or. ;
  GetKeyToggle( VK_CAPITAL), chr(oGet:nLastKey),;
   lower(chr(oGet:nLastKey))  )
return nLastkey
User avatar
James Bott
 
Posts: 4840
Joined: Fri Nov 18, 2005 4:52 pm
Location: San Diego, California, USA


Return to FiveWin for CA-Clipper

Who is online

Users browsing this forum: No registered users and 19 guests