powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / О "злокозненности" MS...
4 сообщений из 4, страница 1 из 1
О "злокозненности" MS...
    #36129157
ТСергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Работаю с 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
О "злокозненности" MS...
    #36129523
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не попадают 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
О "злокозненности" MS...
    #36129742
ТСергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, XAndy !

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

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

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

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

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


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