How to create a TComboBox with incremental search capabilities #83
    Question
  
  
    Is there a way to let a TComboBox do incremental search in
    its drop down list? Currently it uses only the first letter so if
    multiple items start with the same letter it's not very useful.
  
Create a new Combo inherited from TCustomComboBox and change the Change Event to the following few lines:
{...} protected procedure Change; override; {...} procedure TExtComboBox.Change; var str: String; Index: Integer; begin inherited Change; str := Text; if (FLastKey = VK_DELETE) or (FLastKey = VK_BACK) then begin SelStart := Length(str); SelLength := 0; Exit; end; {try to find the closest matching item} Index := Perform(CB_FINDSTRING, -1, LPARAM(str)); if Index <> CB_ERR then begin ItemIndex := Index; SelStart := Length(str); SelLength := Length(Items[Index]) - SelStart; end else Text := str; {call standard event} if Assigned(FOnChange) then FOnChange(Self); end;
| Original resource: | The Delphi Pool | 
|---|---|
| Author: | Unknown | 
| Added: | 2009/08/24 | 
| Last updated: | 2009/08/24 |