Имя: Пароль:
1C
 
Программно установить фокус ввода в список сообщений пользователю
,
0 TormozIT
 
гуру
27.03.21
14:07
https://i.imgur.com/A4a2mJU.png
Управляемое приложение. Программа вывела сообщение пользователю. Хочу программно установить фокус ввода в список этих сообщений.
Конечная цель - скопировать все сообщения в буфер обмена. Для этого надо как то установить фокус ввода в список сообщений.
1 ДедМорроз
 
27.03.21
14:28
Сообщения пользователю лучше ловить до выхода с сервера и сразу обработывать.
Собственно,получитьСообщенияПользователю как раз для этого.
2 TormozIT
 
гуру
27.03.21
14:31
Кто сказал, что сообщения выведены на сервере? Я их на клиенте вывожу.
3 TormozIT
 
гуру
27.03.21
14:31
4 acht
 
27.03.21
14:36
В управляемом приложении столько "окон сообщений", сколько форм. Причем сообщения могут выводится и окно чужой формы. Так что в общем случае твоя задача нерешаема. Можешь побиться об стенку имитации нажатий на клавиши.
5 TormozIT
 
гуру
27.03.21
14:43
(4) Ожидал от тебя большего.
> Причем сообщения могут выводится и окно чужой формы. Так что в общем случае твоя задача нерешаема.
И как это помешает мне установить фокус ввода на нужную форму? Никак. Проблема только в переключении внутри нужного окна фокуса ввода на область сообщений.
Но спасибо что разрешил мне биться об стенку.
6 TormozIT
 
гуру
27.03.21
14:46
Нужное сочетание клавиш не найдено. Похоже его вообще нет. Нужной команды окна тоже не нашел.
7 tndr3
 
27.03.21
15:19
Интересно, а задача-то какая?
Ну накопировал ты кучу строк в буфер обмена, и чего дальше с ними делать?
Типа передать куда-то в другое приложение? Или что?
8 TormozIT
 
гуру
27.03.21
15:23
(7) Перед закрытием окна перебросить сообщения в родительское окно.
9 tndr3
 
27.03.21
15:26
А чем не подходит "Оповестить()? с параметрами?
10 tndr3
 
27.03.21
15:26
Или я чего-то не понял
11 TormozIT
 
гуру
27.03.21
15:29
(9) код-отправитель сообщений неизвестен/неподвластен
12 tndr3
 
27.03.21
15:42
(11) Не ну это говнокод конечно, но тем не менее, в каждой форме перед закрытием оповещаешь все что открыто с параметрами (Текст всех ошибок с Символ.ПС - генерируешь)
Ну и в обработке оповещения по условию, выполняешь те или иные действия в нужной форме.
13 TormozIT
 
гуру
27.03.21
15:43
Решил эту задачу. Закрыл этот баг https://www.hostedredmine.com/issues/924211 .
Похоже мне повезло. У меня форма была открыта в режиме БлокироватьОкноВладельца. При ее открытии я подключал обработчик ожидания для ее закрытия. И пока поток кода выполнялся, в это окно в реальном времени выводились сообщения. Но при завершении потока кода, иногда внутренний обработчик ожидания платформы для вывода накопленных сообщений в активное окно - срабатывал раньше чем мое окно сообщений реального времени закрывалось. Долго я мучался с этим.
Методом тыка нашел, что если переключить окно в режим БлокироватьВесьИнтерфейс, то обработчик ожидания платформы для вывода сообщений срабатывает всегда после обработчика ожидания в этой форме.
14 TormozIT
 
гуру
27.03.21
15:52
(13) Точнее решил задачу не (0) а задачу, из которой она родилась. А задачу (0) не решил.