|
Программно установить фокус ввода в список сообщений пользователю | ☑ | ||
---|---|---|---|---|
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) не решил.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |