Hola. Tengo la siguiente funcion asociada a un list box:
olbx:bKeyDown:={|nKey|KeySeek(nKey,olbx)}
y la funcion keyseek:
Function KeySeek(nKey,olbx)
SET SOFTSEEK ON
IF nKey = 8 // Reset on BackSpace Key
oString := ""
go top
olbx:Upstable()
ELSE
IF (nKey = 32) .OR. (nKey = 46) .OR. (nKey = 45) .OR. (nKey = 196) .OR. (nKey > 64 .AND. nKey < 91) .OR. (nKey > 39 .AND. nKey < 60)
// Check for valid keys ONLY
oString := oString + UPPER(Chr(nKey))
DbSeek(oString)
olbx : Refresh()
ENDIF
ENDIF
SET SOFTSEEK OFF
RETURN NIL
funciona pero no para los siguientes caracteres (entre otros): - y . (guion medio y punto). ¿que puede ser? probe con un msgstop mostrando char(nkey), y tecleando varios caracteres, y cuando presiono -, me tira que el nkey es 189 y chr(189) imprime ½, ¿¿¿me explico???
Con el punto (.) pasa algo parecido: tecleo el punto, y me dice que el nkey es 190, y chr(190) es ¾.
¿tienen idea que puede estar pasando?
Gracias.
Uso FWH 803