|
О "злокозненности" MS...
|
|||
---|---|---|---|
#18+
Работаю с 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. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2009, 09:56 |
|
О "злокозненности" MS...
|
|||
---|---|---|---|
#18+
Не попадают 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2009, 11:59 |
|
О "злокозненности" MS...
|
|||
---|---|---|---|
#18+
Спасибо, XAndy ! Информация по ссылке интересна, есть руководство к действию... Подумаем, многое уже прояснилось ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2009, 12:55 |
|
О "злокозненности" MS...
|
|||
---|---|---|---|
#18+
ТСергейРаботаю с VFP очень давно уже (лет этак 20, ... Или это просто глюк ? Да нет, на MS совсем не похоже. Как же это Вы в этом море глюков их не заметили... Скорей не похоже, что Вы 20 лет того... ;) Если клавиши не ловятся (или плохо ловятся) в KeyPress, можно использовать "переназначение". Ну, к примеру, в начале программы назначить: on key label CTRL+F keyboard "{F7}" plain а в KeyPress ловить F7. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2009, 14:28 |
|
|
start [/forum/topic.php?fid=41&tid=1586170]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 133ms |
0 / 0 |