скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Автозаполнение в 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;






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook