|
Вывод сообщения пользователю типа "Предупреждение" без возможности закрыть окно. | ☑ | ||
---|---|---|---|---|
0
bplmeddy
19.01.17
✎
12:02
|
Всем доброго утра. Интересует такой вопрос: есть конфигурация, работает в режиме неуправляемого интерфейса, как можно вывести сообщение через "Предупреждение" чтобы его нельзя было закрыть вручную (закрытие планируется по таймауту). Спасибо.
|
|||
1
shadow_sw
19.01.17
✎
12:09
|
ПоказатьПредупреждение (ShowMessageBox)
Синтаксис: ПоказатьПредупреждение(<ОписаниеОповещенияОЗавершении>, <ТекстПредупреждения>, <Таймаут>, <Заголовок>) Параметры: <ОписаниеОповещенияОЗавершении> (необязательный) Тип: ОписаниеОповещения. Содержит описание процедуры, которая будет вызвана после закрытия окна предупреждения со следующими параметрами: <ДополнительныеПараметры> - значение, которое было указано при создании объекта ОписаниеОповещения. Если параметр не указан, то по завершении никакая процедура вызвана не будет. <ТекстПредупреждения> (обязательный) Тип: Строка; ФорматированнаяСтрока. Текст предупреждения. <Таймаут> (необязательный) Тип: Число. Интервал времени в секундах, в течение которого система будет ожидать ответа пользователя. По истечении интервала окно предупреждения будет закрыто. Если параметр не указан, то время ожидания не ограничено. Значение по умолчанию: 0. <Заголовок> (необязательный) Тип: Строка. Содержит заголовок окна предупреждения. Описание: Выводит на экран окно предупреждения, но не ожидает его закрытия. Доступность: Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент). Примечание: Если после закрытия пользователем окна предупреждения должен быть выполнен какой-либо код, то его нужно разместить в отдельной процедуре модуля и описать ее в параметре <ОписаниеОповещенияОЗавершении>. Пример: ПоказатьПредупреждение(,НСтр("ru = 'Выберите документ!'; en = 'Select a document!'"), 10); |
|||
2
shadow_sw
19.01.17
✎
12:09
|
продам СП, дорого :)) по традиции
|
|||
3
Fish
19.01.17
✎
12:11
|
(2) Не, ему же надо "чтобы его нельзя было закрыть вручную (закрытие планируется по таймауту)" - Т.е. если задано 15 минут, то чтобы пользователь сидел и смотрел все 15 минут, не работая :)
|
|||
4
bplmeddy
19.01.17
✎
12:12
|
(3) Ты не повериш... =)
Как по таймауту закрыть окно я в курсе, вопрос состоит в том как пользователю не дать возможности закрыть окно самостоятельно. Иными словами окно должно висеть определённое время и чтобы юзер ничего не смог с ним сделать. |
|||
5
Вафель
19.01.17
✎
12:13
|
показать свою форму
|
|||
6
shadow_sw
19.01.17
✎
12:13
|
модальное открытие формы, и обработчикожидания
|
|||
7
bplmeddy
19.01.17
✎
12:14
|
(3) Именно так.
|
|||
8
bplmeddy
19.01.17
✎
12:15
|
(6) Форма диалога итак открывается модально. Что мне даст обработка ожидания? Если можно - более детально изложите концепцию. Спасибо.
|
|||
9
shadow_sw
19.01.17
✎
12:16
|
(8) нарисовать форму, на ней кнопку типа ОК, открывать ее модально, и отсчет времени, потом по нажатию закрывать
|
|||
10
bplmeddy
19.01.17
✎
12:19
|
(9) В принципе костыль рабочий, хотя в данном случае можно проще, без обработчика ожидания, что-то типа:
Таймаут = 5; КонДата = ТекущаяДата() + Таймаут; Пока ТекущаяДата() < КонДата Цикл //ждем КонецЦикла; |
|||
11
youalex
19.01.17
✎
12:21
|
+ в ПередЗакрытием() - Отказ = Истина по условию.
|
|||
12
Вафель
19.01.17
✎
12:22
|
(6) Только не модально, а в режиме "блокировать интерфейс"
|
|||
13
shadow_sw
19.01.17
✎
12:25
|
как выразился ТС в (10) - "костыль рабочий" :)) суть уловил, надеюсь он
|
|||
14
bplmeddy
19.01.17
✎
12:26
|
(13) Да, спасибо. Буду так извращаться, если нет встроенных решений =)
|
|||
15
bplmeddy
19.01.17
✎
12:27
|
(12) Это ещё лучше.
|
|||
16
Web00001
19.01.17
✎
12:45
|
Я бы открыл Вопрос, с кнопкой ОК и если он закрыт не по таймауту, анализировал бы сколько он висел и открывал бы по новой но уже с откорректированным таймаутом. И так пока не истечет время.
|
|||
17
Heckfy
19.01.17
✎
12:47
|
(10) Я смотрю, у кого то процессорных мощностей дофига! :)
|
|||
18
azernot
19.01.17
✎
13:12
|
Запомнить время начала, вычислить требуемое время окончания.
Показать предупреждение с описанным обработчиком оповещения, задать таймаут как разница между временем окончания и начала В обработчике оповещения сравнить время окончания с текущим временем, по результатам либо снова вызвать процедуру показа предупреждения, либо передать управление на точку окончания таймаута. |
|||
19
bplmeddy
19.01.17
✎
13:27
|
(17) Есть маленько )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |