The simplest is to set combobox.incrementalsearch=.t. and no code at all. The combobox then does react to what you type while it has focus, as long as you type fast enough. What is taken as start of the name you search, is everything you type with pauses shorter than .5 seconds, which is set in the _INCSEEK system variable (so you can also make it higher for people typing slower).
The _INCSEEK maximum pause time means that if you type MA to search for names starting with MA, but need more than _INCSEEK seconds between M and A, the search does not look for MA but for A. Or in other words, when you make a longer pause than _INCSEEK while typing, this means you start a different search.
Also important: This works for combobox.Style=2 (dropdown list) mainly, when the combobox is a dropdown list. With Style 0 you have a combination of a textbox with an item list and what you type simple goes into the textbox portion of this combined control and causes no incremental search, unless you FIRST expand the list and then type.
On the other hand, with the Style 0 (dropdown combo) you could use what you have with SEEK (when you also have SET NEAR ON to find the nearest match).
Does that help, or do you struggle with displaying the list while the user searches? There also is an example how to do all that in the solutions.app of VFP called "Allow users to choose list values", a solution about the combobox.
Chriss