Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Горячая тема (более 10 ответов) Не отпускает мышку, а почему? (число прочтений - 12522 )
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 записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

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

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



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

Именно ее и эмулирую.
А ФСО в ноль в ПриНажатииПравойКнопки нельзя, а то ячейка не активизируется.
Может АЛьФа попросить добавить эмуляцию мыши в FormEx?
Иногда не хватает.
  
Наверх
ICQ  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Не отпускает мышку, а почему?
Ответ #17 - 31. Декабря 2006 :: 00:38
Печать  
Для решения этой проблемы в последних сборках FormEx есть новый метод установки текущей ячейки таблицы по координатам... Но это уже, наверное, лучше в новом году описывать Улыбка
  

FormEx developer
Наверх
www  
IP записан
 
Tigratanya
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Местоположение: Хаьков
Зарегистрирован: 26. Апреля 2013
Пол: Женский
Re: Не отпускает мышку, а почему?
Ответ #18 - 26. Апреля 2013 :: 21:47
Печать  
vip писал(а) 28. Декабря 2006 :: 12:54:
kms писал(а) 28. Декабря 2006 :: 12:36:
Может тогда фсо в 0 везде и эмулировать нажатие и отжатие левой кнопки?

Именно ее и эмулирую.
А ФСО в ноль в ПриНажатииПравойКнопки нельзя, а то ячейка не активизируется.
Может АЛьФа попросить добавить эмуляцию мыши в FormEx?
Иногда не хватает.


Перечитала ВСЕ страницы данной ветки в поисках ответа на вопрос "как эмулировать нажатие левой кнопки мыши?"

Думаю, мне для решения моей задачи этого будет достаточно.

Задача такая: в ТЗ на форме обработки надо мышкой перемещать строки. Соответственно, штатными средствами формекса можно получить либо конечную строку при отжатии, либо начальную (с применением внешней компоненты или установкой текущей ячейки по координатам).

Изначально был еще один способ: запоминать границы каждой строки и по клику мыши при нажатии проверять, в какую именно строку она попала. Но этот метод будет работать корректно только в том случае, если в видимой части таблицы строки начинаются с первой и все находятся в зоне видимости. В противном случае этот метод будет работать как придется. Улыбка

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

Уважаемый Vip! Вы писали это сообщение больше 6 лет назад, но если вдруг у Вас еще есть где-то Ваши доработки по эмуляции мыши, не могли бы Вы поделиться ими?
1С я за несколько лет более-менее освоила, в формекс в последнее время хоть немного вникла, но на создание внешних компонент у меня пока духу не хватает.  Улыбка
  
Наверх
 
IP записан
 
Tigratanya
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Местоположение: Хаьков
Зарегистрирован: 26. Апреля 2013
Пол: Женский
Re: Не отпускает мышку, а почему?
Ответ #19 - 28. Апреля 2013 :: 01:20
Печать  
Спасибо, уже не надо, сама разобралась!
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать