| Главная | |
Delphi |
WinAPIКак выбрать первый пункт в ListView с использованием клавиши TABВ этом примере у нас имеется два компонента ListView. Первый компонент по имени ListView1 содержит два события: procedure TForm1.ListView1Enter(Sender: TObject); begin HookHandle := SetWindowsHookEx(WH_KEYBOARD, @MsgHook, 0, GetCurrentThreadID); end; procedure TForm1.ListView1Exit(Sender: TObject); begin UnHookWindowsHookEx(HookHandle); end; Второй компонент по имени ListView2 активизируется процедурой MsgHook:
function MsgHook(Code: Integer; WParam: WPARAM; LParam: LPARAM): Integer; stdcall;
const
KeyTAB: Integer = 983041;
begin
if (Code = HC_ACTION) then
begin
if LParam = KeyTAB then
begin
frmMain.lsvCCM.SetFocus;
SendMessage(Form1.ListView2.Handle, WM_KEYDOWN, VK_DOWN, 1);
Result := -1;
Exit;
end;
end;
Result := CallNextHookEx(HookHandle, Code, WParam, LParam);
end;
На OnEnter работает так же: with ListViewX do
if Items.Count > 0 then
if SelCount = 0 then
Items[0].Selected := True;
ListView1.Items.Item[0].Focused :=True;
|
|
|
||
| Copyright (c) Авраменко С. Н. 2008. |