Эмуляция нажатия кнопки

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Аватара пользователя
grigoreo
постоялец
Сообщения: 195
Зарегистрирован: 10.03.2009 14:43:43
Откуда: С нашей Раши

Эмуляция нажатия кнопки

Сообщение grigoreo »

Каким методом можно послать форме или компоненту заранее известную кнопку, т.е съэмулировать ее нажатие,

например в обработчике двойного клика сгенерить нажать кнопку F3, интересен метод работающий и в Виндовс и в Линуксе
ctm
новенький
Сообщения: 21
Зарегистрирован: 03.03.2010 15:34:29

Сообщение ctm »

Аналогичная проблема:
в delphi можно написать SendMessage(Ctrl.Handle, WM_KEYDOWN, .....)

в Лазарусе lclintf.SendMessage(Ctrl.Handle, LM_KEYDOWN, ....)
и ничего не происходит.
Что я не так делаю?

Добавлено спустя 52 секунды:
WinXP SP3, QT, Laz 0.9.29
Аватара пользователя
Light13
постоялец
Сообщения: 127
Зарегистрирован: 17.07.2009 07:50:10
Откуда: Челябинск

Сообщение Light13 »

Может стоит использовать Action'ы, и в нужный момент вызывать соответствующее действие
ctm
новенький
Сообщения: 21
Зарегистрирован: 03.03.2010 15:34:29

Сообщение ctm »

не покатит:(
т.к. нужна именно эмуляция нажатия кнопки.
дабл-клик и F3 - для наглядности
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

ctm писал(а):в delphi можно написать SendMessage(Ctrl.Handle, WM_KEYDOWN, .....)

А что мешает это же написать в Lazarus'е?
ctm
новенький
Сообщения: 21
Зарегистрирован: 03.03.2010 15:34:29

Сообщение ctm »

ничего не мешает, более того - я так и делаю, но результата нет.
в этом и вопрос

Добавлено спустя 57 минут 38 секунд:
поправка - в delphi работает только с PostMessage, в Lazarus - никак:(
Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Brainenjii »

Есть модуль mouseandkeyinput - попробуйте его
ctm
новенький
Сообщения: 21
Зарегистрирован: 03.03.2010 15:34:29

Сообщение ctm »

Спасибо, то что нужно, попробую.
Ответить