скрыть

скрыть

  Форум  

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

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



Google  
 

Автоматическое завершение вводимой фразы для TComboBox



Оформил: DeeCo

{ 
  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