Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / keypress формы и её объектов / 8 сообщений из 8, страница 1 из 1
10.09.2013, 13:02
    #38392110
keypress формы и её объектов
Всем доброго времени суток!
Очень хотелось бы уточнить. Столкнулся с похожей необходимостью, а в топике по соответствующей теме ( http://www.sql.ru/forum/1030317/goryachaya-klavisha?hl=??????? ??????? ) предложен вариант для "назначения" горячей клавиши для кнопки на форме. Хоть застрелите меня, но именно так не работает. Если написать код из command1.keypress в keypress формы, а в кнопке оставить только код клика, то всё красиво работает (разумеется не для всех клавиш и их сочетаний). Вопрос: если пример правильный и у меня что-то криво работает в мозгах, то с какого перепуга при нажатии нужной клавиши при нахождении на форме должен отрабатывать keypress объекта (в данном случае кнопки)??? Ведь насколько знаю при keypreview=.t. первым получает событие keypress формы, а затем keypress активного элемента управления и никакой другой.

Код в топике:
Чтобы использовать F1 на форме
1) свойство формы KeyPreview установить в True

2) т.к. за клавишей F1 закреплен вызов help отключаем его в init form

set help off

3) в command.click прописываете команды которые закреплены за клавишей

WAIT [f1 click] window

4) в command.keypress пишем код который отлавливает нажатие клавиш

Lparameters nKeyCode, nShiftAltCtrl
If nKeyCode = 28
This.Click()
Endif
DoDefault()

Я назначал F3 для вызова события cklick кнопки на форме. Спрашиваю, потому что подобных примеров увидел не один, но реализовать именно таким образом так и не получилось.

Использую VFP9, win7 максимальная
...
Рейтинг: 0 / 0
10.09.2013, 14:06
    #38392227
Дед Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
keypress формы и её объектов
А не пробовал на самой кнопке назначить горячую букву в свойстве Caption, например: "\<Помощь". Тогда по клавише "П" она будет срабатывать, и не нужно будет назначть функциональные клавиши. Знак "\<" назначет следующую за ней букве признак горячей клавиши.
...
Рейтинг: 0 / 0
10.09.2013, 16:37
    #38392544
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
keypress формы и её объектов
ВладимирТК,

4) в form .keypress, а не в command.keypress
ну и естественно не this.click(), а this.mybutton.click()
...
Рейтинг: 0 / 0
10.09.2013, 16:46
    #38392559
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
keypress формы и её объектов
Если в KeyPress() формы выполнить NoDefault то до KeyPress() активного котрола не дойдет.
Как-то так в Form.KeyPress()
Код: sql
1.
2.
3.
4.
LPARAMETERS tnKeyCode, tnShiftAltCtrl	
if tnKeyCode = 32 && 32 это пробел
	nodefault
endif
...
Рейтинг: 0 / 0
25.09.2013, 17:06
    #38407556
keypress формы и её объектов
tanglir,
я собственно так сразу и сделал. Меня именно пример интересовал
...
Рейтинг: 0 / 0
25.09.2013, 17:08
    #38407557
keypress формы и её объектов
Dima T,

конечно не дойдёт
...
Рейтинг: 0 / 0
25.09.2013, 17:10
    #38407562
keypress формы и её объектов
Дед Евгений,
считаю очень не логичным назначать "горячие буквы" для кнопок на форме. Функциональные ещё куда не шло, да и то при крайней необходимости, коя у меня и возникла
...
Рейтинг: 0 / 0
25.09.2013, 17:11
    #38407564
keypress формы и её объектов
Всем спасибо за отклик.
Продолжать тему смысла нет
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / keypress формы и её объектов / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]