Переключение на Главную Страницу Страницы: 1 2 [3] 4 5 ... 9 ОтправитьПечать
Очень популярная тема (более 25 ответов) Разъяснения методов FormEx для начинающих (число прочтений - 44105 )
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Разъяснения методов FormEx для начинающих
Ответ #30 - 11. Февраля 2009 :: 13:31
Печать  
Подскажите пожалуйста, как решить ситуацию:

На форме есть таблица значений.
В процедуре ПриНажатииЛевойКнопки(Состояние,Х,У,ФСО) мне нужно узнать на какую новую ячейку пользователь мышкой щелкнул.

Озадачен
А то я потерялся среди методов "Получить координаты...", "УстановитьТекущуюЯчейку"
« Последняя редакция: 11. Февраля 2009 :: 14:51 - simply »  
Наверх
IP записан
 
MrDen
Junior Member
**
Отсутствует



Сообщений: 50
Местоположение: Краснодар
Зарегистрирован: 19. Ноября 2008
Пол: Мужской
Re: Разъяснения методов FormEx для начинающих
Ответ #31 - 11. Февраля 2009 :: 20:51
Печать  
simply писал(а) 11. Февраля 2009 :: 13:31:
Подскажите пожалуйста, как решить ситуацию:

На форме есть таблица значений.
В процедуре ПриНажатииЛевойКнопки(Состояние,Х,У,ФСО) мне нужно узнать на какую новую ячейку пользователь мышкой щелкнул.

может удобнее ПриОтжатииЛевойКнопки(Состояние,Х,У,ФСО)
и далее ТЗ.ТекущаяСтрока(), ТЗ.ТекущаяКолонка() или необходимо вычислить до перехода курсора?
  
Наверх
ICQ  
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Разъяснения методов FormEx для начинающих
Ответ #32 - 12. Февраля 2009 :: 08:00
Печать  
MrDen писал(а) 11. Февраля 2009 :: 20:51:
может удобнее ПриОтжатииЛевойКнопки(Состояние,Х,У,ФСО)
и далее ТЗ.ТекущаяСтрока(), ТЗ.ТекущаяКолонка() или необходимо вычислить до перехода курсора?

Спасибо, MrDen!
Сегодня утром мне тоже пришла такая мысль.
Сейчас проверю.
  
Наверх
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Разъяснения методов FormEx для начинающих
Ответ #33 - 12. Февраля 2009 :: 08:51
Печать  
ПриОтжатииЛевойКнопки() - удалось.

В ФормеСписка справочника имеется ТаблицаЗначений по значениям которой производится отбор элементов справочника.
Поставил себе задачу изменять отбор не только при нажатии клавиш "Стрелка Вверх" и "Стрелка Вниз", но и при одиночном щелчке мыши.
Вот как получилось:
Код
Выбрать все
Перем ФормРасш;				// Расширение формы FormEx
Перем тСтрДоНажатия;			// Текущая Строка до нажатия левой кнопки мыши
Перем тСтрПослеНажатия;			// Текущая Строка после нажатия левой кнопки мыши

//=============================================== Предопределенная FormEx
Процедура ПриНажатииЛевойКнопки(Сост,Х,У,ФСО)
	Атр=ФормРасш.ПолучитьАтрибутПоКоординатам(Х,У);
	Если ТипЗначенияСтр(Атр)="АтрибутФормы" Тогда
		Если Атр.Идентификатор="тзМоя" Тогда
			тСтрДоНажатия=тзМоя.ТекущаяСтрока();
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры // ПриНажатииЛевойКнопки

//=============================================== Предопределенная FormEx
Процедура ПриОтжатииЛевойКнопки(Сост,Х,У,ФСО)
	Атр=ФормРасш.ПолучитьАтрибутПоКоординатам(Х,У);
	Если ТипЗначенияСтр(Атр)="АтрибутФормы" Тогда
		Если Атр.Идентификатор="тзМоя" Тогда
			тСтрПослеНажатия=тзМоя.ТекущаяСтрока();
			Если тСтрДоНажатия<>тСтрПослеНажатия Тогда
				НовыйОтбор=тзМоя.ПолучитьЗначение(тСтрПослеНажатия,"МояКолонка");
				ВыполнитьОтбор(НовыйОтбор);
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры // ПриОтжатииЛевойКнопки
 


Обожжжаю FormEx!!!
  
Наверх
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Разъяснения методов FormEx для начинающих
Ответ #34 - 19. Февраля 2009 :: 14:45
Печать  
Предопределенная процедура ПриНажатииКнопкиКлавиатуры(<КодКлавиши>,<Alt>,<Shift>,<Ctrl>,<Символ>,<ФСО>)

Перехватываю на форме клавиши <Enter>, <Esc>, <Tab> и еще несколько, связанных с перемещением между атрибутами формы.

Но когда набираю в строковом атрибуте формы текст, то он там не сохраняется.
Не уже ли нужно эту строку собирать посимвольно при наборе?!

Подскажите, плз, как правильно набрать в строковом атрибуте текст и при этом контролировать коммандные клавиши?
  
Наверх
IP записан
 
pavel_tr
Senior Member
****
Отсутствует



Сообщений: 279
Местоположение: Казань
Зарегистрирован: 14. Октября 2006
Пол: Мужской
Re: Разъяснения методов FormEx для начинающих
Ответ #35 - 19. Февраля 2009 :: 14:54
Печать  
ФСО в 0 часом не сбрасываете?
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Разъяснения методов FormEx для начинающих
Ответ #36 - 19. Февраля 2009 :: 15:03
Печать  
Покажи код.
  

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


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Разъяснения методов FormEx для начинающих
Ответ #37 - 19. Февраля 2009 :: 15:23
Печать  
Код
Выбрать все
//======================================================================
Процедура ПриНажатииКнопкиКлавиатуры(КодКлавиши,Альт,Шифт,Контрл,Символ,ФСО)
	//Сообщить("Код= "+КодКлавиши+". Шифт= "+Шифт+". Симв= "+Символ);
	// <Insert> - 45; <Enter> - 13; <F9> - 120; <Delete> - 46; <Tab> - 9; <Esc> - 27
	Если КодКлавиши=9 Тогда // <Tab>
		Если ТекущийСлой="СписокПользователей" Тогда
			Если	  Форма.АктивныйЭлемент()="тзПл"	  Тогда ФСО=0; ПриПовторномОткрытии(?(Шифт=0,"кнНовый","кнЗакрыть"));
			ИначеЕсли Форма.АктинвыйЭлемент()="кнЗакрыть" Тогда ФСО=0; ПриПовторномОткрытии(?(Шифт=0,"тзПл","кнСортироватьЯА"));
			КонецЕсли;
		Иначе
			// Т.к. порядок обхода известен, подставим ТекстПодсказки для следующего элемента формы
			Если	  Форма.АктивныйЭлемент()="СтрПолноеИмя" Тогда ТекстПодсказки=?(Шифт=0,ТхтПрава,ТхтОтмена);
			ИначеЕсли Форма.АктивныйЭлемент()="спПрава"		 Тогда ТекстПодсказки=?(Шифт=0,ТхтИнтерфейсы,ТхтИмя);
			ИначеЕсли Форма.АктивныйЭлемент()="спИнтерфейсы" Тогда ть),ТхтПрава);
			ИначеЕсли Форма.АктивныйЭлемент()="кнОтмена"	 Тогда ,ТхтПрименить));
			ИначеЕсли Форма.АктивныйЭлемент()="кнПрименить"	 Тогда ТекстПодсказки=?(Шифт=0,ТхтОтмена,ТхтИнтерфейсы);
			КонецЕсли;
		КонецЕсли;
		Форма.Обновить();

	ИначеЕсли КодКлавиши=45 Тогда // <Insert>
		Если ТекущийСлой="СписокПользователей" Тогда
			ФСО=0; ПриВыбореЗначения("кнНовый");
		КонецЕсли;

	ИначеЕсли КодКлавиши=13 Тогда // <Enter>
		Если Шифт=1 Тогда
			ФСО=0;
			Если ТекущийСлой="СписокПользователей" Тогда
				ПриВыбореЗначения("кнИзменить");
			КонецЕсли;
		Иначе
			Если	  Форма.АктивныйЭлемент()="спПрава"		 Тогда ТекстПодсказки=ТхтИнтерфейсы;
			ИначеЕсли Форма.АктивныйЭлемент()="спИнтерфейсы" Тогда ТекстПодсказки=ТхтИмя;
			КонецЕсли;
			Форма.Обновить();
		КонецЕсли;

	ИначеЕсли КодКлавиши=120 Тогда // <F9>
		Если ТекущийСлой="СписокПользователей" Тогда
			ФСО=0; ПриВыбореЗначения("кнКопировать");
		КонецЕсли;

	ИначеЕсли КодКлавиши=27 Тогда // <Esc>
		Если ТекущийСлой="СписокПользователей" Тогда
			Если Форма.ТолькоПросмотр()=0 Тогда
				Рез=Вопрос("Завершить работу со ""Списком пользователей 1С""?"+СтрСт+СтрСт+"
						   |""ДА""  - закрыть Список"+СтрСт+"
						   |""НЕТ"" - продолжить работу","Да+Нет",30);
				Если Рез="Нет" Тогда ФСО=0; КонецЕсли;
			КонецЕсли;
		Иначе // Слой "НастройкаПользователя"
			ФСО=0; ПриВыбореЗначения("СменитьСлой","СписокПользователей");
		КонецЕсли;

	КонецЕсли;

КонецПроцедуры	// ПриНажатииКнопкиКлавиатуры
 


Строковый атрибут формы - это <СтрПолноеИмя>.
А не заполняется он при нажатии <Enter>-а.
  
Наверх
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Разъяснения методов FormEx для начинающих
Ответ #38 - 19. Февраля 2009 :: 15:24
Печать  
pavel_tr писал(а) 19. Февраля 2009 :: 14:54:
ФСО в 0 часом не сбрасываете?

сбрасываю, но не в строковом атрибуте
  
Наверх
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Разъяснения методов FormEx для начинающих
Ответ #39 - 20. Февраля 2009 :: 09:53
Печать  
simply писал(а) 19. Февраля 2009 :: 14:45:
Подскажите, плз, как правильно набрать в строковом атрибуте текст и при этом контролировать коммандные клавиши?

Так что, ни у кого нет ни каких идей? Или я слишком много хочу?

Пропробую поставить свой вопрос иначе.
При помощи FormEx-а есть возможность узнать, в какой атрибут формы курсор только что вошел?
  
Наверх
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Разъяснения методов FormEx для начинающих
Ответ #40 - 20. Февраля 2009 :: 15:17
Печать  
simply писал(а) 20. Февраля 2009 :: 09:53:
simply писал(а) 19. Февраля 2009 :: 14:45:
Подскажите, плз, как правильно набрать в строковом атрибуте текст и при этом контролировать коммандные клавиши?

Так что, ни у кого нет ни каких идей? Или я слишком много хочу?

Пропробую поставить свой вопрос иначе.
При помощи FormEx-а есть возможность узнать, в какой атрибут формы курсор только что вошел?

Оба вопроса снимаются!
« Последняя редакция: 23. Февраля 2009 :: 09:43 - simply »  
Наверх
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Разъяснения методов FormEx для начинающих
Ответ #41 - 22. Февраля 2009 :: 13:54
Печать  
simply писал(а) 20. Февраля 2009 :: 15:17:
Оба вопроса снимаются!

Поспешил я со снятием вопросов.

Проблему с обновлением подсказок решил, а с набором строкового атрибута - ничего не изменилось.

Правильно ли понимаю:
Если в форме начинаю использовать предопределенную ПриНажатииКнопкиКлавиатуры, то все стандартные обработки строковых полей перестают стандартно обрабатываться?
  
Наверх
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Разъяснения методов FormEx для начинающих
Ответ #42 - 22. Февраля 2009 :: 15:21
Печать  
Прошу разъяснить, для чего применяются следующие предопределенные процедуры:
- ПриАктивацииОкна() и ПриДеактивацииОкна()
- ПриЧтенииНастройки(<?>,) - какие параметры?
  
Наверх
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Разъяснения методов FormEx для начинающих
Ответ #43 - 23. Февраля 2009 :: 11:45
Печать  
simply писал(а) 22. Февраля 2009 :: 15:21:
- ПриАктивацииОкна() и ПриДеактивацииОкна()

Предназначеня дла отслеживания смены активного дочернего окна.

simply писал(а) 22. Февраля 2009 :: 15:21:
- ПриЧтенииНастройки(<?>,) - какие параметры?

ПриЧтенииНастройки(Имя, ФСО) и ПриЗаписиНастройки(Имя, ФСО)
Имя - строка с именем настройки,
ФСО - флаг стандартной обработки (установка в ноль отменяет чтение/запись)
  

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


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Разъяснения методов FormEx для начинающих
Ответ #44 - 24. Февраля 2009 :: 09:05
Печать  
АЛьФ писал(а) 23. Февраля 2009 :: 11:45:
simply писал(а) 22. Февраля 2009 :: 15:21:
- ПриЧтенииНастройки(<?>,) - какие параметры?

ПриЧтенииНастройки(Имя, ФСО) и ПриЗаписиНастройки(Имя, ФСО)
Имя - строка с именем настройки,
ФСО - флаг стандартной обработки (установка в ноль отменяет чтение/запись)

Большое спасибо!
С окнами понятно.

Прошу подсказать по Чтению/Записи Настроек - имеются в виду настройки чего?
Имя настройки - это заранее созданный список или имя настраиваемого объекта?
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 4 5 ... 9
ОтправитьПечать