Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Не отпускает мышку, а почему? (число прочтений - 12529 )
chicago
Senior Member
****
Отсутствует


1C++, I have nothing to
say more!

Сообщений: 316
Местоположение: Тернополь-Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Не отпускает мышку, а почему?
28. Декабря 2006 :: 09:08
Печать  
1СРР - 2.0.2.2
После срабатывания процедуры  ПриОтжатииПравойКнопки() в модуле формы обработки, почемуто наблюдается ефект "не отпускания клавиши мишки". Кто нибуть сталкивался с этим? Озадачен
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Не отпускает мышку, а почему?
Ответ #1 - 28. Декабря 2006 :: 09:14
Печать  
chicago писал(а) 28. Декабря 2006 :: 09:08:
1СРР - 2.0.2.2
После срабатывания процедуры  ПриОтжатииПравойКнопки() в модуле формы обработки, почемуто наблюдается ефект "не отпускания клавиши мишки". Кто нибуть сталкивался с этим? Озадачен

Сталкивался. Это происходит на гридах в случае, если по правой кнопке вывыливаешь контекстное меню, но ничего в нем не выбираешь.
Не придумал ничего лучше, как добавить в свою ВК эмуляцию клика мыши и вызываю ее именно в таком случае..
  
Наверх
ICQ  
IP записан
 
chicago
Senior Member
****
Отсутствует


1C++, I have nothing to
say more!

Сообщений: 316
Местоположение: Тернополь-Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Не отпускает мышку, а почему?
Ответ #2 - 28. Декабря 2006 :: 09:20
Печать  
Я думал если <ФСО> - флаг стандартной обработки установить в 0 то не будет вызыватся конт. меню. И оно же не вызывается.
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Не отпускает мышку, а почему?
Ответ #3 - 28. Декабря 2006 :: 09:44
Печать  
chicago писал(а) 28. Декабря 2006 :: 09:20:
Я думал если <ФСО> - флаг стандартной обработки установить в 0 то не будет вызыватся конт. меню. И оно же не вызывается.

Не поможет.
Неправильно я сказал. Этот эффект проявляется, если в контекстном меню нет ни одной строки (т.е. оно строится динамически и случилось так, что список для меню пустой).
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Не отпускает мышку, а почему?
Ответ #4 - 28. Декабря 2006 :: 10:16
Печать  
chicago писал(а) 28. Декабря 2006 :: 09:20:
Я думал если <ФСО> - флаг стандартной обработки установить в 0 то не будет вызыватся конт. меню. И оно же не вызывается.

Раз уж ты не отжимаешь мышь, то и нажимать не надо.
Т.е. если в ПриОтжатии ФСО = 0, то и в при нажатии ставь ФСО = 0.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Не отпускает мышку, а почему?
Ответ #5 - 28. Декабря 2006 :: 10:25
Печать  
kms писал(а) 28. Декабря 2006 :: 10:16:
chicago писал(а) 28. Декабря 2006 :: 09:20:
Я думал если <ФСО> - флаг стандартной обработки установить в 0 то не будет вызыватся конт. меню. И оно же не вызывается.

Раз уж ты не отжимаешь мышь, то и нажимать не надо.
Т.е. если в ПриОтжатии ФСО = 0, то и в при нажатии ставь ФСО = 0.

Это если задача не вызывать родное меню 1С.
А если заменять его своим меню, то см. выше.
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Не отпускает мышку, а почему?
Ответ #6 - 28. Декабря 2006 :: 10:39
Печать  
Чего смотреть выше?

В чем причина залипух у автора: он пропускает в систему событие нажатия, но не пропускает событие отжатия.
Разумеется, менюха блокируется, но и статус мыши не меняется на отжатый.

Поэтому в обработчиках должно стоять пара ФСО = 1, или ФСО = 0.
Иначе эта залипуха - полностью штатное и ожидаемое поведение.

vip
О каком методе отрисовки динамического меню, кстати речь у тебя шла?
Сервис::ВыбратьЗначение() или через СписокЗначений, или ...?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Не отпускает мышку, а почему?
Ответ #7 - 28. Декабря 2006 :: 11:05
Печать  
Цитата:
vip
О каком методе отрисовки динамического меню, кстати речь у тебя шла?
Сервис::ВыбратьЗначение() или через СписокЗначений, или ...?

А это без разницы. Ты все правильно написал для случая, когда правая кнопка вообще не должна работать.
А вот если нужно обработать отжатие, то в случае, если нечего обрабатывать, то и будет залипание.
Пример.
Нужно по отжатию кнопки выкинуть свое меню.

Если и в ПриНажатииПравойКнопки() поставить ФСО=0, то вообще ничего не произойдет.

Если наш список для меню окажется пустым, то ФСО=0 вызовет залипание, а ФСО=1 выкинет родное меню 1С, что нам не нужно.

Самый простой пример.

Код
Выбрать все
Процедура ПриОтжатииПравойКнопки(Сост,X,Y,ФСО)
	ФСО=0;
КонецПроцедуры 



Без ФСО=0 в ПриОтжатииПравойКнопки() залипание.
С ФСО=0 в ПриОтжатииПравойКнопки() никаких действий.      
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Не отпускает мышку, а почему?
Ответ #8 - 28. Декабря 2006 :: 11:19
Печать  
vip писал(а) 28. Декабря 2006 :: 11:05:
Если и в ПриНажатииПравойКнопки() поставить ФСО=0, то вообще ничего не произойдет.

Проверял, конечно?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
chicago
Senior Member
****
Отсутствует


1C++, I have nothing to
say more!

Сообщений: 316
Местоположение: Тернополь-Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Не отпускает мышку, а почему?
Ответ #9 - 28. Декабря 2006 :: 11:24
Печать  
kms писал(а) 28. Декабря 2006 :: 11:19:
vip писал(а) 28. Декабря 2006 :: 11:05:
Если и в ПриНажатииПравойКнопки() поставить ФСО=0, то вообще ничего не произойдет.

Проверял, конечно?


Я не проверял, но только что проверил. Ты прав. Спасибо.
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Не отпускает мышку, а почему?
Ответ #10 - 28. Декабря 2006 :: 11:32
Печать  
Цитата:
Проверял, конечно?

Проверял, конечно. Улыбка
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Не отпускает мышку, а почему?
Ответ #11 - 28. Декабря 2006 :: 11:50
Печать  
Ну, не знаю, у меня меню работает при фсо = 0 всезде - да оно должно работать (см. файл).

Но я вспомнил, что мне не нравилось в свое время в этой схеме.
Если в ПриНажатии и ПриОтжатии ставить фсо в 0, то ячейка ТЗ не активизируется и менюха вылезает по адресу прежней ячейки.

А если нигде не ставить фсо в 0, тогда залипухи случаются, но именно в Сервис::ВыбратьЗначение().
Причем в том числи и для непустых менюх.

Ну. я об этом тоже писал когда-то, потом как-то позабылось.
  

1_001.ert ( 8 KB | Загрузки )

De quelle planète es-tu?
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Не отпускает мышку, а почему?
Ответ #12 - 28. Декабря 2006 :: 12:12
Печать  
Цитата:
Но я вспомнил, что мне не нравилось в свое время в этой схеме.
Если в ПриНажатии и ПриОтжатии ставить фсо в 0, то ячейка ТЗ не активизируется и менюха вылезает по адресу прежней ячейки.

В твоем примере это именно так. Что некрасиво.
Посмотри свой пример с тремя заремареными строчками.
Это то, о чем я говорю - случай с пустым списком.
  

1_001_1.ert ( 16 KB | Загрузки )
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Не отпускает мышку, а почему?
Ответ #13 - 28. Декабря 2006 :: 12:18
Печать  
vip писал(а) 28. Декабря 2006 :: 12:12:
Это то, о чем я говорю - случай с пустым списком.

Не, это то, о чем я говорю - случай гарантированнй залипухи.
Поскольку грид мышь захватил (ты пропустил событие нажатия), а отпустить забыл (отжатие заблокировал).

По мне, такая схема некорректна.
Тогда лучше нигде фсо в 0 не ставить, поскольку у града нет системного меню.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Не отпускает мышку, а почему?
Ответ #14 - 28. Декабря 2006 :: 12:23
Печать  
Цитата:
Тогда лучше нигде фсо в 0 не ставить, поскольку у града нет системного меню.

Я свое контекстное меню использую в журнале документов.
И пока приходится делать так.
Цитата:
Не придумал ничего лучше, как добавить в свою ВК эмуляцию клика мыши и вызываю ее именно в таком случае.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать