![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
WM_KEYDOWN, WM_KEYUP
Spawn © (2003-01-29 20:22:00)Ну ни как не могу затсавить работать(( Всякие WM_LBUTTONDOWN(UP), WM_CHAR работают нормально, но нажатие кнопок ни в какую.
Вот, например, пробую нажать кнопку в Edit:
SendMessage(Edit1.Handle,WM_KEYDOWN,Ord("f"),0);
SendMessage(Edit1.Handle,WM_KEYUP,Ord("f"),0);
и ноль результата.
Подскажите, пожалуйста, в чем моя ошибка?
Spawn (2003-01-29 21:41:00) [1]Спасибо
Cobalt (2003-01-29 21:33:00) [2]этот оператор сдвигает ScanCode на 16 битов влево:
(например: 0000.0000.1100.1100 <-на 6 битов: 0011.0011.0000.0000)
в область битов № 16-23 "Specifies the scan code. The value depends on the original equipment manufacturer (OEM)."
Spawn (2003-01-29 20:56:00) [3]Я нашел такой вариант(он работает):
ScanCode := MapVirtualKey($56, 0);
lParam := ScanCode shl 16 or 1;
PostMessage(Edit1.Handle, WM_KEYDOWN, $56, lParam);
Пожалста поясните LParam:=ScanCode shl 16 or 1;(а именно shl)
Для чего нужен оператор shl?