LOCAL codigoCaracter AS Integer
LOCAL valorDisplay AS String
LOCAL valorNuevoDisplay AS String
LOCAL lnUltimaSeleccion AS Integer
LOCAL lnSeleccionados AS Integer
codigoCaracter = LASTKEY()
valorNuevoDisplay = ""
lnUltimaSeleccion = 0
lnSeleccionados = 0
IF (codigoCaracter >= 32 AND codigoCaracter <= 126)
valorDisplay = SUBSTR(THIS.DISPLAYVALUE,1,THIS.SELSTART-1)+(CHR(codigoCaracter))
valorNuevoDisplay = THIS.DISPLAYVALUE
FOR i = 1 TO THIS.LISTCOUNT
IF UPPER(valorDisplay) $ UPPER(SUBSTR(THIS.LIST(i),1,LEN(valorDisplay)))
THIS.DISPLAYVALUE = THIS.LIST(i)
THIS.SELSTART = LEN(valorDisplay)
IF LEN(ALLT(THIS.DISPLAYVALUE)) > LEN(valorDisplay)
THIS.SELLENGTH = LEN(ALLT(THIS.DISPLAYVALUE))-LEN(valorDisplay)
ELSE
THIS.SelLength = 0
ENDIF
valorNuevoDisplay = THIS.DISPLAYVALUE
lnUltimaSeleccion = THIS.SELSTART
lnSeleccionados = THIS.SELLENGTH
RETURN
ENDIF
ENDFOR
THIS.DISPLAYVALUE = valorNuevoDisplay
THIS.SELSTART = IIF(lnUltimaSeleccion > 0, lnUltimaSeleccion, LEN(valorDisplay))
THIS.SELLENGTH = lnSeleccionados
ENDIF