Автозаполнение строки ввода TComboBox в момент набора текстаDelphi , Компоненты и Классы , СпискиАвтозаполнение строки ввода TComboBox в момент набора текста
Автор: Lipskiy { **** UBPFD *********** by delphibase.endimus.com **** >> Автозаполнение строки ввода ComboBox в момент набора текста Процедура выполняет операцию автозаполнения текста по аналогии с вводом адреса в Internet Explorer - при наборе строки автоматически вставляется первая совпадающая с набранной строка из списка ComboBox. Легко переделать для TEdit и подобных. Параметр LastLength должен быть объявлен глобальной переменной - он исключает автозаполнение при удалении символов в строке. Зависимости: StdCtrls, SysUtils Автор: lipskiy, lipskiy@mail.ru, ICQ:51219290, Санкт-Петербург Copyright: Собственное написание (Сергей Кириллов) Дата: 10 мая 2002 г. ***************************************************** } procedure AutoInsertComboBoxItem(ComboBox: TCombobox; var LastLength: integer); var i, ln: integer; begin // Сравниваем длину текста, если новая длина меньше старой - // значит было удаление символов и автоподбор не нужен if Length(ComboBox.Text) <= LastLength then begin LastLength := Length(ComboBox.Text); exit; end; // Запоминаем длину текста для следующего вызова процедуры LastLength := Length(ComboBox.Text); // Ищем в списке начала строк, совпадающие с введенным текстом for i := 0 to ComboBox.Items.Count - 1 do begin // Для поиска с учетом регистра: //if Copy(ComboBox.Items[i],1,Length(ComboBox.Text)) = ComboBox.Text then // Для поиска без учета регистра: if Copy(AnsiUpperCase(ComboBox.Items[i]), 1, Length(ComboBox.Text)) = AnsiUpperCase(ComboBox.Text) then begin ln := length(ComboBox.Text); // Вставляем текст ComboBox.Text := ComboBox.Items[i]; // Выделяем добавленный блок текста ComboBox.SelStart := ln; ComboBox.SelLength := Length(ComboBox.Items[i]) - ln; break; end; end; end; // Пример использования: var Form1: TForm1; EndL: integer; implementation procedure TForm1.ComboBox1Change(Sender: TObject); begin AutoInsertComboBoxItem(ComboBox1, EndL); end; Перевод на русский язык: Это код Delphi, который обеспечивает функцию автодополнения для контрола TComboBox. Когда пользователь вводит текст в комбобоксе, код поискает соответствующие элементы в списке и автоматически вставляет первый совпадающий элемент. Расшифровка кода:
Пример использования показывает, как использовать эту процедуру в обработчике события Некоторые предложения по улучшению:
В целом, этот код обеспечивает базовое реализацию функции автодополнения для TComboBox и может быть легко расширен или изменен для соответствия конкретным требованиям. Автозаполнение строки ввода TComboBox в момент набора текста позволяет автоматически вставлять первую совпадающую строку из списка при наборе текста. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |