Таймер на MsgBox

Автор OOKapitan, 30 января 2018, 17:18

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

bigor

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

OOKapitan

Цитата: Bigor от 31 января 2018, 14:35вместо msgbox
Это я знаю. Куда конкретно в коде Rami ставить эти условия? А кажется понял: перед dlg.dispose() вместо MsgBox. Так?

bigor

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

OOKapitan

Огромнейшее всем СПАСИБИЩЕ!

rami

dlg.dispose() нельзя трогать вообще, иначе диалог не закроется пока не сойдет время. Надписи на кнопках можете поменять.

OOKapitan

А как скопировать диалог в мои диалоги? Не нашёл кнопку "Копировать".

rami

Так же как китайцы делают в таком случае, — просто перерисовать и поставить штамп "сделано у нас" ;D ;D ;D

OOKapitan

#22
Цитата: rami от 31 января 2018, 15:03просто перерисовать
Как? Из меня неважный рисовальщик. Всё получилось. Но возникла следующая проблема: диалог не реагирует на нажатие кнопок. Никак

bigor

показывай свой код
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

OOKapitan

#24
Такой же, как и у Rami. В его файле работает, если же я кидаю это всё в Мои макросы - нет.
Вот код:
Option Explicit
Const n=10   'Установить количество секунд до закрытия диалога
Dim dlg
Sub Dialog1Show Dim i%
DialogLibraries.LoadLibrary("Standard")
dlg=CreateUnoDialog(DialogLibraries.Standard.Dialog1)
dlg.title="Что будем делать?"
dlg.setVisible(true)
dlg.controls(1).Text=n
For i=n To 0 Step -1
If Not dlg.hasElements Then Exit Sub Else dlg.controls(1).Text=i
wait 1000
Next
End Sub

Sub Main

End Sub

Sub btYes
'Макрос для кнопки "Да"
Macro1
dlg.dispose()
End Sub

Sub btNo
'Макрос для кнопки "Нет"
Macro2
dlg.dispose()
End Sub

Sub btClose
'Макрос для кнопки "Закрыть"
Exit Sub
dlg.dispose()
End Sub

bigor

а диалог рисует?
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

OOKapitan

Цитата: Bigor от 31 января 2018, 15:23а диалог рисует?
Да.
Но нажатие кнопок ничего не даёт. Диалог закрывается только по таймеру. ЗЫ: пост 24 поправил.

bigor

#27
поставь свои MacroX после  dlg.dispose(), exit sub тоже, если он вообще нужен. А на период отладки оставь msgbox, как у rami было
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

rami

Строку: dlg=CreateUnoDialog(DialogLibraries.Standard.Dialog1)
Заменить на: dlg=CreateUnoDialog(GlobalScope.DialogLibraries.Standard.Dialog1), а Dialog1 заменить (если нужно) на имя соответствующего диалога.

OOKapitan

Цитата: Bigor от 31 января 2018, 15:28поставь свои MacroX после  dlg.dispose()
Не помогло  :'(