Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / О "злокозненности" MS... / 4 сообщений из 4, страница 1 из 1
06.08.2009, 09:56
    #36129157
ТСергей
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О "злокозненности" MS...
Работаю с VFP очень давно уже (лет этак 20, а если считать ещё и КАРАТ - то и поболее 20 будет). Сейчас использую VFP-9. Но вот только недавно, случайно, наткнулся на следующий "привет" от Мелкософта. Итак, цитата из справки по VFP9 по методу KeyPress в форме.

"KeyPress Event
Occurs when the user presses and releases a key. You can use the KeyPress event for intercepting keystrokes entered in a control. You can also test keystrokes immediately for validity or format characters as they are typed. Use the KeyPreview property to create global keyboard-handling routines.
Parameters
nKeyCode
Contains a number that identifies the key pressed. For a list of codes for special keys and key combinations, see INKEY( ).
nShiftAltCtrl
Sets a particular bit if a modifier key is held down while pressing the key specified by nKeyCode. Valid modifier keys are the SHIFT, CTRL, and ALT keys. The following table lists the modifier key values for nShiftAltCtrl.
nShiftAltCtrl Modifier key
1 SHIFT
2 CTRL
4 ALT
This parameter is the sum of the bits with the least-significant bits corresponding to the SHIFT key (bit 0), the CTRL key (bit 1), and the ALT key (bit 2). These bits correspond to the values 1, 2, and 4, respectively. This parameter indicates the state of these keys. Some, all, or none of the bits can be set, indicating that some, all, or none of the keys is pressed. For example, if both CTRL and ALT are pressed, the value of nShiftAltCtrl is 6.
Remarks
The KeyPress event does not occur for any combination of keys with the ALT key ."

Так вот, вопрос к уважаемым гуру по FoxPro, а также ко всем заинтересованным:

Зачем было включать в значения клавиш-модификаторов значение 4 - для клавиши ALT (первая выделенная строка в цитате), если само событие KeyPress Event (см. последнюю строку из приведённой цитаты) в форме любые комбинации клавиш с клавишей ALT не обрабатывает ?

Или это просто глюк ? Да нет, на MS совсем не похоже. Но тогда остаётся только одно предположение - о преднамеренной злокозненности и специфическом чувстве извращения у упомянутой (не дай бог к ночи) MS.
...
Рейтинг: 0 / 0
06.08.2009, 11:59
    #36129523
XAndy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О "злокозненности" MS...
Не попадают Alt + что-угодно в keypress() видимо потому, что обычно такие сочетания принято вешать на главное меню

Если необходимо ловить простое Alf+[клавиша], то можно по старинке с помощью on key label
(включать в activate() формы и отключать в deactivate()). Ещё про push key, pop key вспомнить.

Если надо что-то посложнее, вроде Alt+Ctrl+... или не нравится on key label (что вполне понятно), то смотрите пример здесь http://forum.foxclub.ru/read.php?29,282565,298049#msg-298049
...
Рейтинг: 0 / 0
06.08.2009, 12:55
    #36129742
ТСергей
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О "злокозненности" MS...
Спасибо, XAndy !

Информация по ссылке интересна, есть руководство к действию... Подумаем, многое уже прояснилось
...
Рейтинг: 0 / 0
06.08.2009, 14:28
    #36130109
GrammerPro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О "злокозненности" MS...
ТСергейРаботаю с VFP очень давно уже (лет этак 20,
...
Или это просто глюк ? Да нет, на MS совсем не похоже.

Как же это Вы в этом море глюков их не заметили... Скорей не похоже, что Вы 20 лет того... ;)

Если клавиши не ловятся (или плохо ловятся) в KeyPress, можно использовать "переназначение". Ну, к примеру, в начале программы назначить:

on key label CTRL+F keyboard "{F7}" plain

а в KeyPress ловить F7.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / О "злокозненности" MS... / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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