on change en un get

Post Reply
chocochester
Posts: 14
Joined: Mon Oct 24, 2005 3:24 pm

on change en un get

Post by chocochester »

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.
User avatar
James Bott
Posts: 4654
Joined: Fri Nov 18, 2005 4:52 pm
Location: San Diego, California, USA
Contact:

Post by James Bott »

Code: Select all

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
Post Reply