powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / "ON KEY LABEL MOUSE" хочу NODEFAULT
7 сообщений из 7, страница 1 из 1
"ON KEY LABEL MOUSE" хочу NODEFAULT
    #34498698
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Контрол вызывает модальную форму. Форма вешает ON KEY LABEL MOUSE. Если клик мыши происходит вне формы, вызывается Destroy формы. Проблема в том, что форма нормально дестроится, а клик начинает обрабатываться дальше (контролами, формами). Надо бы этот клик как-нибудь подавить. В хелпе не нашел.
...
Рейтинг: 0 / 0
"ON KEY LABEL MOUSE" хочу NODEFAULT
    #34498777
po2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
po2
Гость
В событии Unload пишем:
Код: plaintext
ON KEY LABEL MOUSE &&снимет назначение именно на Click мыши
или
Код: plaintext
ON KEY &&снимет все назначения ON KEY LABEL
...
Рейтинг: 0 / 0
"ON KEY LABEL MOUSE" хочу NODEFAULT
    #34499115
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
po2В событии Unload пишем:
Код: plaintext
ON KEY LABEL MOUSE &&снимет назначение именно на Click мыши
или
Код: plaintext
ON KEY &&снимет все назначения ON KEY LABEL

Не, как снять Key Label мне понятно, тем более лучше использовать PUSH/POP KEY для моих задач.

Проблема в том, что я обработал клик и хочу погасить событие. А получается так, что я уничтожаю форму по клику, а событие Click начинает обрабатываться скрином, формами, объектами под курсором мыши.
...
Рейтинг: 0 / 0
"ON KEY LABEL MOUSE" хочу NODEFAULT
    #34499249
po2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
po2
Гость
Понятно. Если пишешь на девятке, то лучше напрячь BindEvent(), тогда контроль будет полным. В младших версиях можно использовать функцию inkey(). Примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
on key label mouse MyFunc()
proc MyFunc
   if ... &&условие на перехват нажатия, например щелчек вне пределов активной формы
= inkey( 0 ,'hm')
...&&действия для закрытия формы
retu
endi
...
Рейтинг: 0 / 0
"ON KEY LABEL MOUSE" хочу NODEFAULT
    #34499265
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не уверен, но если версия VFP6 или старше, можно попробовать СНАЧАЛА пропихнуть мышиное событие, а ПОТОМ закрывать форму. Через DOEVENTS. Собственно, это то же самое, что написал po2 , только вместо Inkey() надо написать DOEVENTS.
...
Рейтинг: 0 / 0
"ON KEY LABEL MOUSE" хочу NODEFAULT
    #34499441
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шпасибо всем. Забыл сказать, что Fox 8-ой.
1. DOEVENTS попробовал. Поведение интересней стало, только надо где-то ручками отрефрешивать то, что находилось под формой. Почему-то само не рефрешится.
2. INKEY попробовал. Собственно, сам копал в эту же сторону. До 'hm' недокопал. ;-/
3. с BINDEVENT недопонял. Но предположил, раз говорится про 9-ку, то биндить системные события, например, WM_NCMBUTTONDOWN. Я правильно понял здесь?
...
Рейтинг: 0 / 0
"ON KEY LABEL MOUSE" хочу NODEFAULT
    #34499697
po2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
po2
Гость
По п.3. Да в 9-ке BindEvent позволяет перехватывать системные события и назначать на них функции VFP.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / "ON KEY LABEL MOUSE" хочу NODEFAULT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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