Окно диалога с динамичными элементами.

Автор DigitaLS, 8 ноября 2023, 12:53

0 Пользователи и 1 гость просматривают эту тему.

DigitaLS

Добрый день Друзья!
Прошу помощи, хочу разобраться с элементами размещёнными на диалоговом окне.

Смысл примерно такой:
на Диалоговом окне "Okno1" размещены элементы: кнопка "Button1" и Текстовое поле "TextField1".
При нажатии на кнопку "Button1", в текстовом поле "TextField1" должны начать бежать цифры 1 до 20.

Насобирал код примерно в таком виде:
Sub Okno
Dim oDialog As Object
Dim oElement As Object

oDialog = CreateUnoDialog(DialogLibraries.Standard.Okno1) 'Указываем название диалогового окна (Okno1)
oElement = oDialog.getControl("TextField1") 'присваиваем переменной oElement название Текстового поля
oElement.Model.Text = 1

oDialog.Execute() 'Выводим на экран Диалоговое окно.
End Sub
Здесь в окне Текстового поля должно появиться число "1".

Возможно ли сделать обновление информации в реальном времени в Текстовом поле диалогового окна?
Что бы код выглядел примерно так:

Sub Okno
Dim oDialog As Object
Dim oElement As Object

oDialog = CreateUnoDialog(DialogLibraries.Standard.Okno1) 'Указываем название диалогового окна (Okno1)
oElement = oDialog.getControl("TextField1") 'присваиваем переменной oElement название Текстового поля

For a=1 To 20
 oElement.Model.Text = a 
            'обновления данных, в текстовом поле, в реальном времени не происходит
            'пока не вызовем команду показа диалогового окна: oDialog.Execute().
            'Но получится наслоение нескольких  диалоговых окон.
Next a

oDialog.Execute() 'Выводим на экран Диалоговое окно.
End Sub

В тоже время при попытке управлять свойствами ячейки на листе книги динамические изменения в реальном времени работают.

economist

У диалогов есть методы перерисовки, в т.ч. фоновой. Цикл ваш сработает мгновенно и покажет 20.

Если (вдруг) случайно вам нужен просто стандартный прогрессбар с кубиками и %% (внизу окна) или отображение красивого инфо-баннера (вверху окна) - в LO есть готовые красивые инструменты для этого, в несколько строк кода, примеры есть на Форуме.

Кодить "анимации" в диалогах OpenOffice|LibreOffice можно, но долго и сложно. На разных экранах/разрешения/scale-факторах диалоги будут давать досадные ляпы, мигания, невписашки итд. "Фирменного" вида сложно добиться.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...