Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) [RWidjets] ПриПолученииКоманды() (число прочтений - 12372 )
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
[RWidjets] ПриПолученииКоманды()
12. Декабря 2007 :: 07:32
Печать  
Поднимаю вопрос опять!
Когда Роберт решит все-таки отрихтовать данную процедуру?
Заклиниваеть ее хоть ты тресни!
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: [RWidjets] ПриПолученииКоманды()
Ответ #1 - 12. Декабря 2007 :: 07:47
Печать  
Сделай простейший тест с повторяемостью бага и можно будет исправлять.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: [RWidjets] ПриПолученииКоманды()
Ответ #2 - 12. Декабря 2007 :: 08:03
Печать  
Пожалста:
Код
Выбрать все
Функция ПриПолученииКоманды(пКоманда, пЗаблокироватьКоманду)
	Перем лКонтекст;
    Если пКоманда=32805 Тогда
		FormEx_ИконкаПредупреждения=1;
		FormEx_ОсновнаяКнопкаПредупреждения=2;
		Ответ=Вопрос("Нельзя блокировать сессию!
		|Выйти из 1С?","Да+Нет",10);
	  пЗаблокироватьКоманду=1;
		Если Ответ="Да" Тогда
			ЗавершитьРаботуСистемы();
		КонецЕсли;
	ИначеЕсли пКоманда=33898 Тогда
		ОткрытьФорму("Обработка.ЖурналРегистрации");
		пЗаблокироватьКоманду=1;
	ИначеЕсли пКоманда=32786 Тогда
					   // тута создается список значений для последующего выбора
					  // делаем что-то типа:
					  Сп.ВыбратьЗначение(,,)
					  // так вот тута при любом нажатии кнопки мыши (!!!!!) именно мыши (правая левая по барабану) постоянно выбрасывает этот список тоеть процедура типа блокирует системное действие но не ждет пока произойдет выбор или отмена!

	Иначе
		//Сообщить(пКоманда);
	КонецЕсли;
КонецФункции
 


  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: [RWidjets] ПриПолученииКоманды()
Ответ #3 - 12. Декабря 2007 :: 11:27
Печать  
Как-то не хочется искать, что за код ты указал Печаль
Я о 32786
Т.е. напиши, что нужно сделать, чтобы тест сработал и видно было баг Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: [RWidjets] ПриПолученииКоманды()
Ответ #4 - 12. Декабря 2007 :: 11:31
Печать  
УПС.
Пардон
32786 это ввод нового документа из формы журнала.
  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: [RWidjets] ПриПолученииКоманды()
Ответ #5 - 12. Декабря 2007 :: 11:34
Печать  
Да вот что еще забыл добавить:
В глобальном у мене есть
ПриНажатииКнопкиКлавиатуры(......)
так вот в ней я перезватываю нажатие Insert
и делаю ФСО=0
так в ней все красиво работает.
А тут как бы команда то отменяется , но вызов процедуры таки срабатывает постоянно.
Я пробовал блокировать пока не отработает то что мене надо, но блокировка срабатует только на 2-е нажатие мышки.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: [RWidjets] ПриПолученииКоманды()
Ответ #6 - 12. Декабря 2007 :: 11:53
Печать  
varelchik писал(а) 12. Декабря 2007 :: 11:31:
32786 это ввод нового документа из формы журнала.

Опять неполное описание Печаль
Теперь непонятно, каким образом ты делаешь добавление в форме журнала - через Инсерт или через кнопку на панели инструментов или Действия/Добавить ?

ЗЫ а еще лучше, чтобы ты поправил свой первый пост, написав, что нужно делать, и выложив конфу-пример !
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: [RWidjets] ПриПолученииКоманды()
Ответ #7 - 12. Декабря 2007 :: 12:09
Печать  
Пару минут шас накидаю в конфе что происходит.
  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: [RWidjets] ПриПолученииКоманды()
Ответ #8 - 12. Декабря 2007 :: 12:25
Печать  
Так вот задача обстоит св следующем:
У мене в Много журналов но в ним т.е в каждом виде нужно ограничить список Видов документов при вводе новых.
Соответственно с помощью FormEx я перехватываю нажатие кнопки Insert, тут какраз все в порядке и зацикливания не проиходит.
А вот когда я пытаюсь перехватить Команду Insert одинаково от куда:
Меню Действия или форма Журнала (Ввод новой строки),т.е. когда получаем эту команду в
ПриПолученииКоманды()
я хочу сделать выбор занчения нужного мне вида документа.
И что в результате выходит?
Если на появившемся Списке не кликать мышкой а работать через клавиатуру, то все происходит нормально.
Но как только я нажимаю (внезависимости где) кнопку мышки (опятьже до лампочки павая или левая)
Опять срабаывает Процедура ПриПолученииКоманды()
ну и естественно выбразывает мене еще один Список поверх того что был вызван заранее.
и так продолжается пока через ESC не поотменяешь нужные списки.
Ввиду того что нажатие кнопки Insert работает я его не включил.
Вот и МД с примером.
  

1Cv7_002.MD ( 124 KB | Загрузки )
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: [RWidjets] ПриПолученииКоманды()
Ответ #9 - 12. Декабря 2007 :: 13:08
Печать  
Ну так как есть соображения?
Кто-то уже может подтвердить данный баг?
Да еще:
1С++ 2.5.0.6 2007-11-20
FormEx 2.0.5.81
RWidjets.dll 1.3.5.4
  
Наверх
 
IP записан
 
sergling
Junior Member
**
Отсутствует



Сообщений: 24
Зарегистрирован: 05. Июля 2007
Пол: Мужской
Re: [RWidjets] ПриПолученииКоманды()
Ответ #10 - 12. Декабря 2007 :: 21:25
Печать  
попробуй использовать переменную - семафор, выставляй при входе в обработчик, убирай при выходе. Естественно если вошел в обработких, а семафор = 1, то безусловный выход. Думаю поможет. Во всяком случае я так выруливал в похожей ситуации.
  
Наверх
 
IP записан
 
metaeditor
1c++ power user
Отсутствует


are you nuts?

Сообщений: 564
Зарегистрирован: 04. Июля 2006
Пол: Мужской
Re: [RWidjets] ПриПолученииКоманды()
Ответ #11 - 15. Декабря 2007 :: 15:37
Печать  
причина тут:
Код
Выбрать все
LRESULT CALLBACK MenuHook(int code, WPARAM wp, LPARAM lp){
	...

	if(uMsg == WM_LBUTTONUP){
		CWnd *pWnd = CWnd::FromHandle(hwnd);	 //вот это можно заменить
		CPoint pt; ::GetCursorPos(&pt);		//на
		CWnd *pWnd = CWnd::WindowFromPoint(pt); //это

		if(!strcmp(pWnd->GetRuntimeClass()->m_lpszClassName,"CCustomToolBar7")
		|| !strcmp(pWnd->GetRuntimeClass()->m_lpszClassName,"CToolBar7"))
	...

	CallModuleProc("ПриПолученииКоманды", "OnGetCommand", 2, lArray);
 



если из ПриПолученииКоманды() открыть модальное окно то в WM_LBUTTONUP всегда  передаеться тотже самый hwnd тулбара над которым ткнули мышью... и событие вызывается ещё раз...
  

Регистр.EAX.СводныйОстаток()
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: [RWidjets] ПриПолученииКоманды()
Ответ #12 - 16. Декабря 2007 :: 07:52
Печать  
Прекрасно.
И кто это теперь сможет заменить?
metaeditor
Может сделаешь?
И выложи здесь.
А то что-то Роберт пропал в неизвестном направлении.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: [RWidjets] ПриПолученииКоманды()
Ответ #13 - 16. Декабря 2007 :: 10:44
Печать  
А что с репозитарием у Федора?
Модуля RWidjets там больше нет?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
metaeditor
1c++ power user
Отсутствует


are you nuts?

Сообщений: 564
Зарегистрирован: 04. Июля 2006
Пол: Мужской
Re: [RWidjets] ПриПолученииКоманды()
Ответ #14 - 16. Декабря 2007 :: 10:47
Печать  
Цитата:
Прекрасно.
И кто это теперь сможет заменить?
metaeditor
Может сделаешь?
И выложи здесь.
А то что-то Роберт пропал в неизвестном направлении.

попробуй вот

Цитата:
А что с репозитарием у Федора?
Модуля RWidjets там больше нет?

я исходники брал из репозитария...  уменя под анонимусом соединяется...

файл удалён
« Последняя редакция: 16. Декабря 2007 :: 15:48 - metaeditor »  

Регистр.EAX.СводныйОстаток()
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать