Autocomplete field
capellan
capellan2000 at yahoo.com
Thu Oct 29 21:53:36 EDT 2009
Hi Peter,
Many thanks for posting this handler.
Filtering the search results is a
great idea! Thanks again.
Looks like your handler was cut-off,
because the rawKeydown handler
does not had a closing match.
While running this handler, i always get
the word "sEntryBuffer" in the field "enterPt"
and could not erase the content using
backspace or delete keys.
Obviously, i am doing something wrong.
Could you point me where is my error?
Notice that to run this handler i created
a global named pList that contains the
names list and changed the part of the
script where it reads "ptList":
put ptList into selectedPts (changed to:)
put pList into selectedPts
Thanks in advance.
Alejandro
Peter Brigham MD wrote:
>
>
> I modified your code to include filtering the displayed list. Works
> like a charm, very elegant. Great timing, too, since your solution met
> a need I just discovered I had....
> Note comments marked with --##
> (watch line wraps)
>
> # match name as user types
> on rawKeyDown pWhich
> if the commandKey is down then pass rawKeyDown
> # exclude any functions like copy, paste, etc.
> if pWhich <= 255 then # for anything that's in ascii range
> put the selectedChunk into tSelChunk
> if word 2 of tSelChunk <= word 4 of tSelChunk then
> # adding a char to the end of the entry buffer
> put sEntryBuffer & numToChar(pWhich) into sEntryBuffer
> else # inserting a char inside the entry buffer
> put numToChar(pWhich) after char word 4 of tSelChunk of
> sEntryBuffer
> put sEntryBuffer into fld "enterPt"
> end if
> --## I added the following two lines
> --## pList is a global containing the full list of names
> put pList into selectedPts
> filter selectedPts with sEntryBuffer & "*"
> --## now selectedPts contains only those entries that match
> --## this shortens & simplifies the display list
> put lineOffset(cr & sEntryBuffer, cr & selectedPts) into
> currentLine
> if currentLine > 0 then
> put selectedPts into fld "pList"
> --## instead of putting the whole list into the field
> showUserList
> set the hilitedLines of field "pList" to currentLine
> set the scroll of field "pList" to \
> (currentLine - 1) * the effective textHeight of field "pList"
> put the selectedText of fld "pList" into fld "enterPt"
> select char (word 2 of tSelChunk) + 1 to -1 of fld "enterPt"
> else
> hide fld "pList"
> set the hilitedline of fld "pList" to 0
> put sEntryBuffer into fld "enterPt"
> select after char word 4 of tSelChunk + 1 of fld "enterPt"
> end if
> else # handle all other keys
>
> -- Peter
>
--
View this message in context: http://www.nabble.com/Autocomplete-field-tp26098204p26123877.html
Sent from the Revolution - User mailing list archive at Nabble.com.
More information about the use-livecode
mailing list