Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Активизация многострочного поля ввода с позиционированием курсора (число прочтений - 12359 )
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Активизация многострочного поля ввода с позиционированием курсора
03. Октября 2011 :: 08:08
Печать  
Есть проблема, которую даже сформулировать толком не знаю как...

Короче, в базе есть система сообщений, которая активно используется (обработка ожидания раз в пару минут проверяет наличие новых сообщений и открывает формы новых сообщений).
Сначала юзеры жаловались, что очень неудобно, когда работаешь с каким-то документом - а тебе вывалило штук 5 сообщений и потом приходится искать на панели форм форму документа.
Ну, покурил хелп - нашел "АктивныйКонтекст", сделал так, чтоб после открытия форм сообщений открывалсь та форма, с которой они работали.

Все хорошо, за исключением одного момента:
в паре документов используется многострочное текстовое поле - причем, там это основной реквизит (90% смысла документа в этом тексте). И когда открываются сообщения, а затем активизируется этот документ - весь текст в многострочном поле ввода становится выделенным.
А поскольку рядовые юзеры не обладают навыками слепой печати на клавиатуре - они как-правило, не замечают и продолжают печатать, убивая введенный ранее текст.
Я, конечно, показал им Ктрл+Зед, но это лишь припарка мертвому.

Что хочется:
1) идеальный вариант: научиться открывать формы сообщений вообще в фоне (чтоб фокус вообще никуда не переходил).
2) приемлимый вариант: при активизации формы этих проблемных документов сделать так, чтоб выделение снималось и курсор ставился в конец текста
3) <свой вариант>
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Активизация многострочного поля ввода с позиционированием курсора
Ответ #1 - 03. Октября 2011 :: 09:17
Печать  
Смежный вопрос - возникают ли какие-нить события у формы, когда она получает фокус?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Активизация многострочного поля ввода с позиционированием курсора
Ответ #2 - 03. Октября 2011 :: 14:35
Печать  
мот тебе что-нить в этом духе сделать?
http://www.1cpp.ru/forum/YaBB.pl?num=1259749729/7#7

ну или пни chessman-а, пусть слепит пример открытия сторонней формы (не 1с).. в фоне
Улыбка
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Активизация многострочного поля ввода с позиционированием курсора
Ответ #3 - 04. Октября 2011 :: 03:45
Печать  
Eprst писал(а) 03. Октября 2011 :: 14:35:
мот тебе что-нить в этом духе сделать?
http://www.1cpp.ru/forum/YaBB.pl?num=1259749729/7#7


Разве что, делать красный тултип, мол "есть новые сообщения"...
+ я так подозреваю, эти тултипы не могут оставаться в фоне до тех пор, пока по ним не щелкнешь мышкой
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Активизация многострочного поля ввода с позиционированием курсора
Ответ #4 - 04. Октября 2011 :: 05:20
Печать  
Именно. Но можно и на заднем фоне открыть, по-идее.
  
Наверх
 
IP записан
 
mszsuz
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 33
Зарегистрирован: 18. Октября 2010
Re: Активизация многострочного поля ввода с позиционированием курсора
Ответ #5 - 04. Октября 2011 :: 07:58
Печать  
Может MiracleV8 подойдет? http://dev.1tsm.ru/project/110
Там много возможностей всяких. Пример во вложении.
Фокус не сбивает.
  

11111_001.ert ( 8 KB | Загрузки )
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Активизация многострочного поля ввода с позиционированием курсора
Ответ #6 - 04. Октября 2011 :: 10:46
Печать  
mszsuz писал(а) 04. Октября 2011 :: 07:58:
Может MiracleV8 подойдет? http://dev.1tsm.ru/project/110
Там много возможностей всяких. Пример во вложении.
Фокус не сбивает.


Поковыряюсь
  
Наверх
 
IP записан
 
Ковалев Андрей
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 36
Зарегистрирован: 03. Февраля 2010
Re: Активизация многострочного поля ввода с позиционированием курсора
Ответ #7 - 11. Октября 2011 :: 14:30
Печать  
Satans Claws писал(а) 03. Октября 2011 :: 08:08:
Что хочется:
1) идеальный вариант: научиться открывать формы сообщений вообще в фоне (чтоб фокус вообще никуда не переходил).
2) приемлимый вариант: при активизации формы этих проблемных документов сделать так, чтоб выделение снималось и курсор ставился в конец текста


по п1: я делал через плавающие формы, там фокус не сбивается, курсор остается на месте

по п2: а вот здесь та же самая засада и у меня
  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Активизация многострочного поля ввода с позиционированием курсора
Ответ #8 - 11. Октября 2011 :: 15:52
Печать  
По п.2: после активизации текстового поля посылать комбинацию Ctrl+End

Код
Выбрать все
WSH=СоздатьОбъект("WScript.Shell");
WSH.SendKeys("^{END}"); 


  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Активизация многострочного поля ввода с позиционированием курсора
Ответ #9 - 12. Октября 2011 :: 06:07
Печать  
Как отследить активизацию текстового поля?

Кроме как по событиям нажатия кнопки мыши/клавиатуры, следя за активным элементом формы?
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Активизация многострочного поля ввода с позиционированием курсора
Ответ #10 - 13. Октября 2011 :: 05:27
Печать  
Satans Claws писал(а) 12. Октября 2011 :: 06:07:
Как отследить активизацию текстового поля?

Кроме как по событиям нажатия кнопки мыши/клавиатуры, следя за активным элементом формы?


Можно еще перехватить процедуру окна.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Активизация многострочного поля ввода с позиционированием курсора
Ответ #11 - 13. Октября 2011 :: 10:04
Печать  
chessman, нет ли у тебя поделок, с открытием стороннего окошка (не 1с-ины) , в котором бы еще и события ловились, или кнопки были бы ? Чтоб можно было свой "чат" прилепить.... как например, в твоём тултипе ?
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Активизация многострочного поля ввода с позиционированием курсора
Ответ #12 - 14. Октября 2011 :: 05:37
Печать  
Нет, ничего больше не делал в этом направлении.
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Активизация многострочного поля ввода с позиционированием курсора
Ответ #13 - 14. Октября 2011 :: 10:56
Печать  
chessman писал(а) 13. Октября 2011 :: 05:27:
Можно еще перехватить процедуру окна.


ээээ *туплю*

Читать как "перехватить процедуру обновления окна"?
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Активизация многострочного поля ввода с позиционированием курсора
Ответ #14 - 15. Октября 2011 :: 08:01
Печать  
Satans Claws писал(а) 14. Октября 2011 :: 10:56:
Читать как "перехватить процедуру обновления окна"?


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