views:

219

answers:

2

Hi,

I need a delphi component for Delphi 2007 win32 that have features like Google search text box.

** While User writing search key it should fill/refresh the list with values, and user can select one of them.

**User can go up and down list and can select one of them.

**List should contain codes and text pair, so user can select text and I can get code for database operations.

(Google can highlight the search text in List but I think it is not possible with Delphi 2007, so it is not excepted.)

I tried Dev Express TcxMRUEdit, however it doesn't meet my needs

+1  A: 

Since you have DevExpress, why don't you try the cxLookupComboBox in lsEditMode and with ImmediateDropDown = True?

Roald van Doorn
+1 - Should be suffient to duplicate that functionality.
yozey
A: 

I also had the same problem and unfortunately didn't find a suitable component. I was also inspired from google.

So it turned out to be easier for me to "simulate a component" by using an editbox and a grid placed under it. As the user types something in the editbox the query refreshes and the proper resulst are shown in the grid. I have many columns in the grid, the query results try to match all the fields (so if I type 'po', the query will return all records where any field is like 'po%'). I also added a delay of 500ms after the user types to avoid to run too many unnecessary queries (another aproach could be to kill the thread as the user strikes a new key, if the query is run in a thread).

In this way I obtained the required functionality, even if without higlighting the search text, anyway my users are delighted by this.

In every place I am using this "component" I am attaching a query at runtime so it can be used in many different forms.

I somehow was also inspired by the skype UI: when you display the lsit of contacts you can type something and the contacts will be filtered accordingly (skype uses an editbox + grid/listbox).