powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как в дереве нажать SHIFT+F11 ?
13 сообщений из 13, страница 1 из 1
Как в дереве нажать SHIFT+F11 ?
    #33747756
Фотография Программизд 01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На дерево метод KeyPress формы не распространяется, а в методе KeyPress дерева, значение 135 (Shift+F11) для keyascii не выполняется. Зато работает ON KEY LABEL SHIFT+F11 "процедура". Но если SHIFT+F11 долго держать, то возникает ошибка превышения nesting level вызова указанной процедуры.
...
Рейтинг: 0 / 0
Как в дереве нажать SHIFT+F11 ?
    #33747788
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
при выполении процедуры сначала сбрось ON KEY LABEL SHIFT+F11 а на выходе взад восстанови
...
Рейтинг: 0 / 0
Как в дереве нажать SHIFT+F11 ?
    #33747837
Фотография Программизд 01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hel!Riserпри выполении процедуры сначала сбрось ON KEY LABEL SHIFT+F11 а на выходе взад восстанови

Не получается

В главном модуле стоит

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
ON KEY LABEL SHIFT+F11 myProc

В другом модуле:

PROCEDURE myProc

PUSH KEY CLEAR

 ...............
 ...............

POP KEY

ENDPROC

Все равно вылазит ошибка
...
Рейтинг: 0 / 0
Как в дереве нажать SHIFT+F11 ?
    #33748102
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У ActiveX компонент свои собственные ASCII-коды клавишь, отличные от кодов собственно среды FoxPro.

В частности, Shift+F11 - это будет

keycode = 122

Однако кроме всего прочего, крайне нежелательно делать вызов модальных форм из событий ActiveX-компонент. Это может привести к ряду глюков в работе ActiveX-компонент.

В этом случае я делаю запуск модальных форм через одноразовый таймер, включение которого и происходит в событии ActiveX-компонента. В этом случае событие отрабатывает до конца и только после этого выполняется собственно событие таймера.
...
Рейтинг: 0 / 0
Как в дереве нажать SHIFT+F11 ?
    #33748246
Фотография Программизд 01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир М.

В методе KeyPress дерева входные параметры

LPARAMETERS keyascii,nShift

Вставляю код

IF keyascii = 122
messagebox("test")
ENDIF

И ничего не работает. Что я не так делаю ?
...
Рейтинг: 0 / 0
Как в дереве нажать SHIFT+F11 ?
    #33748278
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если в KeyDown ?

С уважением, Алексей
...
Рейтинг: 0 / 0
Как в дереве нажать SHIFT+F11 ?
    #33748301
_Иван_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
135 1
Во первых нет в дереве KeyPress
Есть KeyUp
Вот там и пиши
*** ActiveX Control Event ***
LPARAMETERS keycode, shift
*WAIT WINDOW keycode
*WAIT WINDOW shift
DO CASE
CASE keycode=122 and shift=1
thisform.KeyPress(135,1)

А в KeyPress формы
LPARAMETERS nKeyCode, nShiftAltCtrl
*WAIT WINDOW ("nKeyCode="+STR(nKeyCode)+"nShiftAltCtrl="+STR(nShiftAltCtrl))
DO CASE
CASE nKeyCode=135 AND nShiftAltCtrl=1
WAIT WINDOW "Усе получилось"
ENDCASE
...
Рейтинг: 0 / 0
Как в дереве нажать SHIFT+F11 ?
    #33748308
_Иван_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу извинений,
есть такой метод в дерево,
но пользовать нужно тот, который я описал
...
Рейтинг: 0 / 0
Как в дереве нажать SHIFT+F11 ?
    #33748316
Фотография Программизд 01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey-KА если в KeyDown ?

С уважением, Алексей

Ага, получилось. Странно то, что в KeyPress работают ESC (27) и Enter (13), а 122 и 135 не хотят. Зато в KeyDown 122 работает. Вот такой вот актив-икс :)
...
Рейтинг: 0 / 0
Как в дереве нажать SHIFT+F11 ?
    #33748341
Фотография Программизд 01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот блин, не все так просто оказалось. У меня в KeyDown функция CHR(keycode) дает неправильные значения. А использовать ее мне жизненно необходимо. А в KeyPress CHR(keyascii) работает правильно.
...
Рейтинг: 0 / 0
Как в дереве нажать SHIFT+F11 ?
    #33748382
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так не надо в методах дерева делать обработку! В событии KeyUp сделай вызов обычного метода (лучше, своего собственного), куда в качестве параметра и передай нужные коды.
...
Рейтинг: 0 / 0
Как в дереве нажать SHIFT+F11 ?
    #33748428
Фотография Программизд 01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМТак не надо в методах дерева делать обработку! В событии KeyUp сделай вызов обычного метода (лучше, своего собственного), куда в качестве параметра и передай нужные коды.

Не пойдет. Смысл в том, что у меня реализован поиск в дереве следующим образом. Юзер стоит на какой-либо ноде дерева и начинает с клавиатуры вводить текст для поиска. То, что вводит юзер автоматически выводится в окно поиска на панели инструментов через функцию CHR(keyascii). Причем буквы могут быть как русскими, так и английскими. Все это нормально работает в KeyPress, где корректно различаются и русские и английские буквы. Если все это перенести в KeyDown, чтобы заработал SHIFT+F11, то CHR(keycode) возвращает некорректные с точки зрения CHR() значения. Более того, для русских и английских букв, значение keycode одинаковое. Вот в этом то и проблема.
...
Рейтинг: 0 / 0
Как в дереве нажать SHIFT+F11 ?
    #33748472
Фотография Программизд 01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все, решил проблему.

Там где нужен keyascii, обработку оставил в KeyPress, а обработку SHIFT+F11 вынес в KeyUp, который выполняется после KeyPress. Ибо если SHIFT+F11 поместить в KeyDown, то он блокирует выполнение кода в KeyPress и тем самым не дает ничего нажимать кроме SHIFT+F11. Всем спасибо.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как в дереве нажать SHIFT+F11 ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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