Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема ПриНажатииКнопкиКлавиатуры() - проблема с фокусом (число прочтений - 5147 )
ЧебурЗлоп
Senior Member
****
Отсутствует


Ябба!

Сообщений: 314
Местоположение: г.Москва
Зарегистрирован: 14. Августа 2006
Пол: Мужской
ПриНажатииКнопкиКлавиатуры() - проблема с фокусом
02. Октября 2008 :: 22:09
Печать  
Озвучивал проблему АЛьФу - пока не решено - специфика какая-то(дословно не помню)
что есть:
есть поле ввода,
туда бьем цифры
что хочу:
жмакнуть функциональную клавишу, например Ф4
и в обработчике нажатия клавиатуры выполнить некие действия с __введенным__ в поле данными, т.е. функциональная клавиша знаменует собой конец ввода в поле
проблема:
так как в момент нажатия функциональной клавиши фокус с поля ввода не ушел - в обработчике поле ввода остается пустым...
...
зачем я это пишу - а чтоб вам спалось не сильно мягко! Подмигивание
проблема возможно как-то по-другому решается - но тогда когда решал - обойти не смог.. приходилось лишний энтер делать...
  
Наверх
www  
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ПриНажатииКнопкиКлавиатуры() - проблема с фокусом
Ответ #1 - 03. Октября 2008 :: 05:26
Печать  
Подозреваю, что ответ будет примерно такой:
Цитата:
- там используется стандартный контрол 1С, так что если кто-то сделает такой сервис для стандартного контрола - значит будет работать.
Но у меня таких планов нет.

То есть этого функционала ещё вообще нет.
(взято здесь)
  
Наверх
ICQ  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ПриНажатииКнопкиКлавиатуры() - проблема с фокусом
Ответ #2 - 03. Октября 2008 :: 06:28
Печать  
Навскидку две идеи, которые можно попробовать:
- вставить Форма.Обновить();
- попробовать фокус переключить на другой атрибут формы, а потом вернуть обратно.
  

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


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: ПриНажатииКнопкиКлавиатуры() - проблема с фокусом
Ответ #3 - 16. Ноября 2012 :: 11:32
Печать  
Решается с помощью скрипта от chessman http://www.1cpp.ru/forum/YaBB.pl?num=1152157445/45
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
kti
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 06. Декабря 2012
Re: ПриНажатииКнопкиКлавиатуры() - проблема с фокусом
Ответ #4 - 18. Декабря 2012 :: 06:31
Печать  
Кто как решил проблему?
у меня тоже не работает
пробовал
Цитата:
- вставить Форма.Обновить();
- попробовать фокус переключить на другой атрибут формы, а потом вернуть обратно.

не помогает, текстовое поле пустое
Цитата:
Решается с помощью скрипта от chessman

не понял как применить
на всякий случай код
Код
Выбрать все
Процедура ПриНажатииКнопкиКлавиатуры(КодКлавиши, Alt, Shift, Ctrl, ФСО)
	//Сообщить("Код= "+КодКлавиши+". Шифт= "+Шифт+". Симв= "+Символ);
	// <Insert> - 45; <Enter> - 13; <F9> - 120; <Delete> - 46; <Tab> - 9; <Esc> - 27
	Если Форма.АктивныйЭлемент() = "ТекстСообщения" Тогда
//		ТекстСообщения = ТекстСообщения + Симв(КодКлавиши);
		Если (Ctrl = 1) И (КодКлавиши = 13) Тогда // Ctrl+Enter
			Активизировать("кнОтправить");
			Форма.Обновить();
			Если ПустоеЗначение(ТекстСообщения) = 1 Тогда
			    Сообщить("Пустое поле");
			КонецЕсли;
//			ОтправитьСообщение();
			ФСО = 0;
			Активизировать("ТекстСообщения");
		КонецЕсли;
//		Сообщить("Нажата кнопка клавиатуры. " + КодКлавиши +" "+ Alt +" "+ Shift +" "+ Ctrl +" "+ ФСО );
	КонецЕсли;
КонецПроцедуры 

  
Наверх
 
IP записан
 
kti
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 06. Декабря 2012
Re: ПриНажатииКнопкиКлавиатуры() - проблема с фокусом
Ответ #5 - 18. Декабря 2012 :: 07:27
Печать  
Разобрался, вернее скопипастил пример от chessman
теперь еще проблема, как в процедуре
Код
Выбрать все
Процедура ПриОтжатииКнопкиКлавиатуры(Alt, Shift, Символ, ФСО)
	Message(ScrptCtrl.CodeObject.mObj.GetText(Дескриптор));
КонецПроцедуры 


отловить что была нажата кнопка Ctrl, при отжатии Enter
(ну т.е. комбинацию Ctrl+Enter)
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: ПриНажатииКнопкиКлавиатуры() - проблема с фокусом
Ответ #6 - 18. Декабря 2012 :: 07:31
Печать  
проще взять активикс.. и в нём всё реализовать как угодно

ЗЫ:
(<КодКлавиши>,<Alt>,<Shift>,<Ctrl>,<Символ>,<ФСО>)
параметры метода, если че..
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: ПриНажатииКнопкиКлавиатуры() - проблема с фокусом
Ответ #7 - 18. Декабря 2012 :: 08:23
Печать  
Я там ошибку допустил
ПриОтжатииКнопкиКлавиатуры(Alt, Shift, Ctrl, Символ, ФСО)
  
Наверх
 
IP записан
 
kti
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 06. Декабря 2012
Re: ПриНажатииКнопкиКлавиатуры() - проблема с фокусом
Ответ #8 - 18. Декабря 2012 :: 08:48
Печать  
Цитата:
проще взять активикс.. и в нём всё реализовать как угодно

для вас может и проще..  Плачущий  мне-бы так допилить
Цитата:
ПриОтжатииКнопкиКлавиатуры(Alt, Shift, Ctrl, Символ, ФСО)

переделал, заработало, спасибо
только все равно Enter как-то не так отрабатывает, т.е. ФСО ставлю 0, а строка все равно переносится
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: ПриНажатииКнопкиКлавиатуры() - проблема с фокусом
Ответ #9 - 18. Декабря 2012 :: 09:06
Печать  
Еще бы, кнопка то уже нажата.
Может, в ПриНажатииКнопкиКлавы будешь "пасти" ?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать