Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как в дереве нажать SHIFT+F11 ? / 13 сообщений из 13, страница 1 из 1
24.05.2006, 11:23
    #33747756
Программизд 01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в дереве нажать SHIFT+F11 ?
На дерево метод KeyPress формы не распространяется, а в методе KeyPress дерева, значение 135 (Shift+F11) для keyascii не выполняется. Зато работает ON KEY LABEL SHIFT+F11 "процедура". Но если SHIFT+F11 долго держать, то возникает ошибка превышения nesting level вызова указанной процедуры.
...
Рейтинг: 0 / 0
24.05.2006, 11:29
    #33747788
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в дереве нажать SHIFT+F11 ?
при выполении процедуры сначала сбрось ON KEY LABEL SHIFT+F11 а на выходе взад восстанови
...
Рейтинг: 0 / 0
24.05.2006, 11:40
    #33747837
Программизд 01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в дереве нажать SHIFT+F11 ?
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
24.05.2006, 12:41
    #33748102
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в дереве нажать SHIFT+F11 ?
У ActiveX компонент свои собственные ASCII-коды клавишь, отличные от кодов собственно среды FoxPro.

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

keycode = 122

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

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

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

LPARAMETERS keyascii,nShift

Вставляю код

IF keyascii = 122
messagebox("test")
ENDIF

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

С уважением, Алексей
...
Рейтинг: 0 / 0
24.05.2006, 13:28
    #33748301
_Иван_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в дереве нажать SHIFT+F11 ?
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
24.05.2006, 13:30
    #33748308
_Иван_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в дереве нажать SHIFT+F11 ?
Прошу извинений,
есть такой метод в дерево,
но пользовать нужно тот, который я описал
...
Рейтинг: 0 / 0
24.05.2006, 13:31
    #33748316
Программизд 01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в дереве нажать SHIFT+F11 ?
Aleksey-KА если в KeyDown ?

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

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

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

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


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