title: Delphi - delay processing if user still typing
body: <p>I have an application which has an Edit Field. The user will type a search phrase in this field.  I am trying to show in real time the hits against the user's text.  After entering three characters, I do my first search, and then after every character or backspace the search is performed again.</p>
  
  <p>The problem is that as my search algorithm is getting more advanced, it takes longer to do the search. The user can type faster than the results are before generated/displayed.  As a result, the app is feeling sluggish/slow.  I have a couple options:
  (1).  Wait until the user hits enter (2). Put the search in a different thread and do it asynchronously.  Kinda hesitant here since I have never worked with threads before (3). Implement some type of delay so that if the user is still typing, I wait for the user to stop.  </p>
  
  <p>I am leaning towards option 3, but how do I detect if the user is still typing? Do I have to keep a timestamp associated with every keystroke?</p>