Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Системное автозаполнение для компонентов типа TComboBox

Delphi , Компоненты и Классы , Списки

Системное автозаполнение для компонентов типа TComboBox

Автор: Евгений Ефимочкин
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Системное автозаполнение для компонентов типа ComboBox'a

Вызов функции заставит выпадающие списки работать примерно как в IE
в строке адреса или в системном диалоге запуска программы -
при вводе текста происходит выпадение списка с вариантами и а
втозаполнение наиболее подходящим.

Зависимости: ActiveX
Автор:       Евгений Ефимочкин, jexbox1@fromru.com, ICQ:152575652, Ульяновск
Copyright:   взято из AS_ShellControls и слегка адаптировано мною
Дата:        5 августа 2003 г.
***************************************************** }

unit WinAPI_SHAutoComplete;

interface
uses ActiveX;

function SHAutoComplete(hwndEdit: THandle; Flags: Cardinal): HRESULT; stdcall;

function EnableAutoComplete(Handle: THandle; FileSystem, URL: Boolean): Boolean;

implementation

function SHAutoComplete; external 'ShlWApi' name 'SHAutoComplete';

function EnableAutoComplete(Handle: THandle; FileSystem, URL: Boolean): Boolean;
const
  SHACF_FILESYSTEM = $00000001;
  SHACF_URLHISTORY = $00000002;
  SHACF_URLMRU = $00000004;
  SHACF_USETAB = $00000008;
const
  IFileSystem: array[Boolean] of Cardinal = (0, SHACF_FILESYSTEM);
  IURL: array[Boolean] of Cardinal = (0, SHACF_URLHISTORY or SHACF_URLMRU);
var
  Flags: Cardinal;
begin
  Result := False;

  Flags := IFileSystem[FileSystem] or IURL[URL];
  if Flags <> 0 then
  begin
    Flags := Flags or SHACF_USETAB;
    Result := SHAutoComplete(Handle, Flags) = 0;
  end;

initialization
  OleInitialize(nil);
finalization
  OleUninitialize;
end;

end.

// Пример использования:
// Для комбобокса:

EnableAutoComplete(FindWindowEx(ComboBox1.Handle, 0, 'Edit', nil), False, True)
// работает в точности как на IE

Эта единица Delphi предлагает реализацию функции SHAutoComplete из Windows Shell API. Функция позволяет включить функциональность автодополнения для контролов редактирования (например, TComboBox), аналогично тому, как это работает в Internet Explorer.

Единица использует библиотеку ActiveX и определяет две функции: SHAutoComplete, которая является внешней функцией, объявленной для соответствия оригинальной SHAutoComplete-функции, и EnableAutoComplete, которая обертывает вокруг SHAutoComplete и предоставляет более удобный интерфейс.

Функция EnableAutoComplete принимает три параметра:

  • Handle: Обратная связь контрола редактирования (например, TComboBox), для которого должна быть включена автодополнение.
  • FileSystem: Булево значение, указывающее, нужно ли включить автодополнение файловой системы (True) или нет (False).
  • URL: Булево значение, указывающее, нужно ли включить историю URL и список наиболее часто используемых элементов (Most Recently Used) для автодополнения (True) или нет (False).

Функция устанавливает переменную Flags на основе параметров входа и вызывает функцию SHAutoComplete с этими флагами. Если вызов успешен, функция возвращает True; иначе - False.

В примере использования функция вызывается для включения автодополнения для компонента TComboBox, названного ComboBox1, отключая автодополнение файловой системы, но включая историю URL и список наиболее часто используемых элементов.

В целом, эта единица предоставляет удобный способ включить функциональность автодополнения в приложениях Delphi с помощью Windows Shell API.

Системное автозаполнение для компонентов типа TComboBox: функция SHAutoComplete позволяет создавать выпадающие списки с вариантами при вводе текста в строке адреса или системном диалоге запуска программы.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Списки ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-10-08 18:29:43/0.0059340000152588/1