ComboBox с поиском по возрастанию
Чтобы это реализовать, создайте новый ComboBox, унаследованный от TCustomComboBox и измените его событие Change всего в нескольких строках:
{...} 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; { попытаемся найти самый близкий соответствующий элемент } 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; { вызываем стандартное событие } if Assigned(FOnChange) then FOnChange(Self); end;
Вот и все! Почувствуй разницу!
Комментарии