Delphi World - Системное автозаполнение для компонентов типа TComboBox
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Системное автозаполнение для компонентов типа 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 World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования