Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема вопрос по ПриОтжатииПравойКнопки (число прочтений - 2974 )
kir
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 60
Зарегистрирован: 19. Мая 2006
вопрос по ПриОтжатииПравойКнопки
03. Сентября 2008 :: 15:54
Печать  
использую в гл.модуле такую конструкцию
Код
Выбрать все
Процедура икали,ФСО)
	Если ТипЗначенияСтр(кнт) = "ГрупповойКонтекст" Тогда
		РасшФормы = СоздатьОбъект("РасширениеФормы");
		РасшФормы.УстановитьФорму(кнт.форма);
		Атр = тикали);
		Если ПустоеЗначение(атр) = 0 Тогда
			//нашли чего то
			Если атр.ТипЗначенияСтр() = "Справочник" Тогда
				//справочник
				ВыполнитьДействие(Атр.Значение,,,2);
				ФСО=0;
			ИначеЕсли атр.ТипЗначенияСтр() = "Документ" Тогда
				//справочник
				ВыполнитьДействие(Атр.Значение,,,2);
				ФСО=0;
			ИначеЕсли атр.ТипЗначенияСтр() = "МногострочнаяЧасть" Тогда
				//многострочная часть, обработаем только мн.ч.документа документ
				Если лев(РасшФормы.ПолныйТипОбъекта(),9) = "Документ." Тогда
					ВыполнитьДействие(кнт.ПолучитьАтрибут(кнт.форма.АктивныйЭлемент()),,,2);
					ФСО = 0;
				КонецЕсли;
			ИначеЕсли атр.ТипЗначенияСтр() = "ТаблицаЗначений" Тогда
				табл = атр.Значение;
				если табл.ТекущаяСтрока()>0 Тогда
					имяКолонки = табл.ТекущаяКолонка();
					типКолонки = "";
					табл.ПолучитьПараметрыКолонки(имяКолонки,типКолонки);
					Если (лев(типКолонки,8) = "Документ") или (лев(типКолонки,10) = "Справочник") Тогда
						ВыполнитьДействие(табл.ПолучитьЗначение(табл.ТекущаяСтрока(),имяКолонки),,,2);
						ФСО = 0;
					КонецЕсли;
				КонецЕсли;
			КонецЕсли;
		Иначе
			Если РасшФормы.ТипОбъекта() = "Справочник" Тогда
				ВыполнитьДействие(кнт,,,2);
				ФСО = 0;
			ИначеЕсли РасшФормы.ТипОбъекта() = "Документ" Тогда
				ВыполнитьДействие(кнт,,,2);
				ФСО = 0;
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры
 



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



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: вопрос по ПриОтжатииПравойКнопки
Ответ #1 - 04. Сентября 2008 :: 10:00
Печать  
Все правильно. Ты отменил отжатие, но не отменил нажатие, поэтому система и считает, что кнопка нажата. отжатие/нажатие надо отрабатывать парно, если отменяешь одно, то отменяй и другое. Т.е. в ПриНажатии надо отрабатывать тот же код, но без выполнения действия.
  

FormEx developer
Наверх
www  
IP записан
 
kir
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 60
Зарегистрирован: 19. Мая 2006
Re: вопрос по ПриОтжатииПравойКнопки
Ответ #2 - 04. Сентября 2008 :: 10:26
Печать  
ок
спасибо
  
Наверх
 
IP записан
 
kir
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 60
Зарегистрирован: 19. Мая 2006
Re: вопрос по ПриОтжатииПравойКнопки
Ответ #3 - 04. Сентября 2008 :: 10:43
Печать  
вобщем такой вариант выглядит еще более не красиво
в этом случае объект не активизируется на который
кликаем и менюшка вываливается на текущем активном атрибуте формы
а нельзя ли статус кнопок изменять в ПриОтжатииПравойКнопки
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: вопрос по ПриОтжатииПравойКнопки
Ответ #4 - 04. Сентября 2008 :: 14:47
Печать  
А у меня в догонку тоже вопрос:
можно ли как-то попроще определить если при нажатии кнопки мыши нажата клавиша Контрол? Или только вручную отслеживать через ПриНажатииКлавиши...?
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: вопрос по ПриОтжатииПравойКнопки
Ответ #5 - 04. Сентября 2008 :: 15:00
Печать  
blindvic писал(а) 04. Сентября 2008 :: 14:47:
А у меня в догонку тоже вопрос:
можно ли как-то попроще определить если при нажатии кнопки мыши нажата клавиша Контрол? Или только вручную отслеживать через ПриНажатииКлавиши...?

Смотри параметр Состояние.
  
Наверх
ICQ  
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: вопрос по ПриОтжатииПравойКнопки
Ответ #6 - 05. Сентября 2008 :: 08:04
Печать  
Цитата:
ПриНажатииЛевойКнопки / OnLButtonDown

Синтаксис: ПриНажатииЛевойКнопки(Состояние, КоордПоГоризонтали, КоордПоВертикали, ФСО)

Параметры:
Состояние - битовая маска, показывающаяя текущее состояние кнопок мыши.
КоордПоГоризонтали - значение координаты курсора мыши по горизонтальной оси (Х).
КоордПоВертикали - значение координаты курсора мыши по вертикальной оси (Y).
ФСО - флаг стандартной обработки. Изначально равен 1. Если в теле процедуры сбросить значение в 0, то стандартная обработка события не вызывается.
Описание: Предопределенная процедура вызывается при нажатии левой кнопки мыши.

Пример:

Процедура ПриНажатииЛевойКнопки(сост, х, у)
       Сообщить("Нажата левая кнопка мыши.");
КонецПроцедуры

Спасибо. А то хелп сбивает с толку.
ЗЫ. На модификатор Альт почему-то не реагирует:
Код
Выбрать все
Процедура ПриНажатииЛевойКнопки(Состояние, КоордПоГоризонтали, КоордПоВертикали, ФСО)
	Сообщить("Нажата левая кнопка мыши " + Состояние);
КонецПроцедуры 

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: вопрос по ПриОтжатииПравойКнопки
Ответ #7 - 08. Сентября 2008 :: 03:30
Печать  
Пиши в багзиллу, подумаем насчет Альта.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать