|
Управление видимостью элементов. Мобильная платформа. | ☑ | ||
---|---|---|---|---|
0
ТимурСФ
18.08.17
✎
08:29
|
Добрый день.
Не происходит изменение видимости элементов на форме. Код: &НаКлиенте Процедура НачатьРаботу(Команда) Элементы.Приветствие.Видимость = Ложь; Элементы.Обмен.Видимость = Истина; Если МП_ОбменСервер.ПроверитьПодключение() Тогда Если МП_ОбменСервер.ВыполнитьСинхронизациюПошагово() Тогда Элементы.Обмен.Видимость = Ложь; Сообщить("Синхронизация прошла успешно!"); Иначе Элементы.Обмен.Видимость = Ложь; Сообщить("При синхронизации были ошибки!"); КонецЕсли; Элементы.Работа.Видимость = Истина; ОбработатьСтраницуЗаданий(); МП_СлужебныйКлиент.ПроверкаНеЗавершенныхАктов(); МП_ГеопозиционированиеКлиент.ВключитьАвтоЗаписьКоординат(); Иначе Элементы.Обмен.Видимость = Ложь; Сообщить("Неверные данные подключения! Выполните настройку еще раз."); Элементы.Подключение.Видимость = Истина; ЗаполнитьОпцииПодключения(); Возврат; КонецЕсли; КонецПроцедуры По логике при нажатии этой кнопки на экране должен отобразиться элемент "обмен", а затем начаться вызов всего последующего кода. На деле при нажатии кнопки экран зависает (выполняется весь код обмена) а затем происходит изменение видимости элементов. В чем может быть проблема? |
|||
1
Рэйв
18.08.17
✎
08:32
|
а зачем тебе галки если сразу начинает работать код?
|
|||
2
ТимурСФ
18.08.17
✎
08:59
|
Должно быть так:
Пользователь нажимает кнопку "НачатьРаботу" На экране отображается надпись "Идет обмен" (Элементы.Обмен.Видимость = Истина;) Выполняется код (крутится колесико ожидания) А на деле: Пользователь нажимает кнопку "НачатьРаботу" Выполняется код (крутится колесико ожидания) и уже потом происходят все изменения видимости элементов |
|||
3
Рэйв
18.08.17
✎
09:02
|
(2)Повторяю вопрос. Чем спасут пользователя видимые галки если код уже пошел выполняться? Эти галки и их видимость никак не влияют на код.
|
|||
4
dezss
18.08.17
✎
09:03
|
(2) потому что код выполняется асинхронно.
Если хочешь менять видимость до начала обмена, то обмен запускай через обработчик ожидания. И весь код после запуска обработчика переноси из этой процедуры в обработчик. |
|||
5
ТимурСФ
18.08.17
✎
09:04
|
(3) Пока выполняется код, пользователь должен видеть на экране надпись "Идет обмен"
|
|||
6
Рэйв
18.08.17
✎
09:05
|
(5)Он ее и видит.А галки ему для чего?
|
|||
7
ТимурСФ
18.08.17
✎
09:08
|
(6) вы видимо невнимательно прочли первое сообщение. Нет никакой галки. И он не видит надпись.
|
|||
8
ptiz
18.08.17
✎
09:09
|
(0) "на экране должен отобразиться элемент "обмен"" - может, но не должен. Видимость, как правило, меняется только при завершении выполнения кода процедуры.
|
|||
9
Рэйв
18.08.17
✎
09:09
|
(7)а, так это у тебя просто текст чтоли? Ну так форма не успевает обновиться перед тем как ты запустил обрабатываться код.
|
|||
10
ТимурСФ
18.08.17
✎
09:09
|
(8) А вот это уже по делу.
А есть какой то способ вначале изменить видимость а потом уже выполнить весь остальной код? |
|||
11
Рэйв
18.08.17
✎
09:10
|
чтобы не морочить себе голову сделай как все нормальные люди:
Состояние("Идет обмен..."); |
|||
12
FoxFox
18.08.17
✎
09:12
|
(11) На мобильной платформе?
|
|||
13
dezss
18.08.17
✎
09:14
|
(10) прочти (4)
|
|||
14
ТимурСФ
18.08.17
✎
09:30
|
(13) Извиняюсь, не увидел.
С обработчиком ожидания работает как надо. Спасибо. Тема закрыта |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |