FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for CA-Clipper on change en un get
Posts: 14
Joined: Mon Oct 24, 2005 03:24 PM
on change en un get
Posted: Sat Feb 18, 2006 07: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.

Posts: 4840
Joined: Fri Nov 18, 2005 04:52 PM
on change en un get
Posted: Sun Feb 19, 2006 03:22 AM
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
FWH 18.05/xHarbour 1.2.3/BCC7/Windows 10

Continue the discussion