Системное автозаполнение для компонентов типа 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
|