--- ---
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;