Mega Code Archive

 
Categories / Delphi / VCL
 

Use the autocomplete feature in a combobox

Title: use the autocomplete feature in a combobox? { Ever wondered how to make a combobox with autocomplete like the one in the explorer? The trick is in the CB_FINDSTRING API call. } var LastKey: Word; procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin LastKey := Key; end; procedure TForm1.ComboBox1Change(Sender: TObject); var Srch: string; ix: Integer; begin Srch := combobox1.Text; if LastKey = $08 then begin LastKey := 0; Exit; end; LastKey := 0; ix := combobox1.Perform(CB_FINDSTRING, - 1, Longint(PChar(Srch))); if ix CB_ERR then begin combobox1.ItemIndex := ix; combobox1.SelStart := Length(Srch); combobox1.SelLength := (Length(combobox1.Text) - Length(Srch)); end; end;