Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

14 Декабрь 2018, 17:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice  без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 3 4 »   Вниз
  Печать  
Автор Тема: Таймер на MsgBox  (Прочитано 3562 раз)
0 Пользователей и 1 Гость смотрят эту тему.
OOKapitan
Форумчанин
***
Offline Offline

Сообщений: 401


« Стартовое сообщение: 30 Январь 2018, 17:18 »

     И снова здравствуйте  Смеющийся .
     Нашёл для Экселя, но не могу для Calcа. Что написать в коде MsgBox отсюда:
 http://forumooo.ru/index.php/topic,6935.15/msg,44916.html  , чтобы в этом MsgBox светилось возле кнопки "Нет" количество секунд, уменьшающееся до нуля (обратный отсчёт) и по истечению этого времени нажималась кнопка "Нет"? Ну для примера пусть количество секунд будет 30 и пусть оно ежесекундно уменьшается пока не дойдёт до нуля, а затем нажимается кнопка "Нет". Помогите, пожалуйста.
« Последнее редактирование: 30 Январь 2018, 17:40 от OOKapitan » Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 615


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #1: 30 Январь 2018, 18:14 »

Нашёл для Экселя, но не могу для Calcа. Что написать в коде MsgBox отсюда:  ...  , чтобы в этом MsgBox светилось возле кнопки "Нет" количество секунд, уменьшающееся до нуля (обратный отсчёт) и по истечению этого времени нажималась кнопка "Нет"? Ну для примера пусть количество секунд будет 30 и пусть оно ежесекундно уменьшается пока не дойдёт до нуля, а затем нажимается кнопка "Нет".
MsgBox — это отлитый в граните диалог, и ковыряться в его потрохах никому не позволено Смеющийся. Вызванный MsgBox или другой диалог блокирует выполнение программы (или отсчёт времени) до его завершения.
Записан

Bigor
Опытный пользователь
***
Offline Offline

Пол: Мужской
Сообщений: 368


« Ответ #2: 30 Январь 2018, 18:44 »

Нашёл для Экселя, но не могу для Calcа.
Что-то не помню, что бы в  vba можно было в msgbox отсчет делать.
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 636


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #3: 30 Январь 2018, 19:22 »

Можно. Через одно место... В смысле через системную функцию. В user32 есть MessageBoxTimeoutA - описываешь её через Declare и используешь вместо стандартного MsgBox.

А в этих офисах можно было бы использовать возможности BeanShell - пример такого таймера как-то выкладывал ms777 (Google должен помнить где и когда это было).

Но без описания задачи браться за реализацию не хочется
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
mikekaganski
Мастер
*****
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 1 162


« Ответ #4: 30 Январь 2018, 19:41 »

А в этих офисах можно было бы использовать возможности BeanShell - пример такого таймера как-то выкладывал ms777 (Google должен помнить где и когда это было).

На всякий случай - вот ещё одна реализация изменённого MessageBox (всё это никак не опровергает слова о том, что MsgBox высечен в камне - это всё же другая реализация).
Записан

С уважением,
Михаил Каганский
OOKapitan
Форумчанин
***
Offline Offline

Сообщений: 401


« Ответ #5: 31 Январь 2018, 10:35 »

     Всем большое спасибо.
Записан
OOKapitan
Форумчанин
***
Offline Offline

Сообщений: 401


« Ответ #6: 31 Январь 2018, 14:17 »

А может можно сделать тогда без написания секунд? Ну то есть, обычный MsgBox, но если в течение 30 секунд не нажата ни одна клавиша он закрывается (или нажимается клавиша "Отмена" на трёхкнопочном MsgBox с клавишами "Да", "Нет" и "отмена")?
Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 615


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #7: 31 Январь 2018, 14:31 »

Проблема не в написании секунд, а в том, что вызванный MsgBox блокирует выполнение кода, пока он не закроется после нажатия на любую кнопку.
Записан

OOKapitan
Форумчанин
***
Offline Offline

Сообщений: 401


« Ответ #8: 31 Январь 2018, 14:48 »

блокирует выполнение кода, пока он не закроется после нажатия на любую кнопку
Но можно же заставить другой макрос вызвать MsgBox и контролировать время его нажатия? Или этот другой макрос тоже будет заблокирован? Но если так, - неужели нет никаких костыльных вариантов?
Записан
Bigor
Опытный пользователь
***
Offline Offline

Пол: Мужской
Сообщений: 368


« Ответ #9: 31 Январь 2018, 14:54 »

Смирись Улыбка
Выше mikekaganski дал ссылку на самописный MessageBox, посмотри, в нем только добавили возможность раскрашивать надписи. Вспомнили так же и самописный MessageBox, который был с таймером, но ресурс на который ссылается гугл уже не доступен.
Записан
OOKapitan
Форумчанин
***
Offline Offline

Сообщений: 401


« Ответ #10: 31 Январь 2018, 15:07 »

mikekaganski дал ссылку на самописный MessageBox, посмотри, в нем только добавили возможность раскрашивать надписи
Смотрел, но ни черта не понял. Где там указан таймер?
Записан
Bigor
Опытный пользователь
***
Offline Offline

Пол: Мужской
Сообщений: 368


« Ответ #11: 31 Январь 2018, 15:12 »

Там нет таймера, там только с шрифтами играться можно. Просто оцени сложность и реши надо тебе это или нет. С таймером я не нашел, пишет что ресурс не доступен.
Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 615


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #12: 31 Январь 2018, 16:18 »

Таймера там нет потому, что я его раньше вывинтил и завинтил вот сюда:

* Диалог с таймером.ods (11.32 Кб - загружено 14 раз.)
Записан

Bigor
Опытный пользователь
***
Offline Offline

Пол: Мужской
Сообщений: 368


« Ответ #13: 31 Январь 2018, 16:32 »

Так просто  Непонимающий И без резьбы по камню Улыбка
Записан
OOKapitan
Форумчанин
***
Offline Offline

Сообщений: 401


« Ответ #14: 31 Январь 2018, 16:34 »

аймера там нет потому, что я его раньше вывинтил и завинтил вот сюда:
Так это же аналог MsgBox! Круто! Только не совсем понимаю, куда вписать свои условия для кнопок "Да", "Нет", "Закрыть"? Вместо dlg.dispose() или как?
Записан
Страниц: 1 2 3 4 »   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!