|
Модераторы: mihanik |
|
Oberon83 |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 158 Регистрация: 6.5.2005 Где: Республика Чуваши я Репутация: нет Всего: 1 |
Вопрос собственно в следующем:
Есть приложение на VBA в MS Access, по роду своей направленности она перемалывает большие объемы данных, взятые из Excel файлов. Так вот: во время обработки этих данных приложение "висит", т.е. не обновляется экран и т.д. Как можно сделать, чтобы поверх формы было что-нибудь наподобие прогрессбара, либо просто окошка в котором что-нибудь крутилось и была надпись "подождите, идет обработка". Ну что-бы просто была видна "жизнь" приложения, а не просто его "висяк"? P.S.: Заранее благодарю за дельные советы --------------------
OpenArea.ru |
|||
|
||||
kapbepucm |
|
|||
Опытный Профиль Группа: Участник Сообщений: 993 Регистрация: 14.6.2007 Где: Латвия Репутация: 3 Всего: 12 |
см. DoEvents
-------------------- (С) kapbepucm |
|||
|
||||
RockClimber |
|
|||
Опытный Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: 7 Всего: 15 |
Ставишь элемент управления Progressbar, минимальное и максимальное значение приводишь к начальному и конечному значению счетчика цикла, в цикле текущее значение счетчика передаешь прогрессбару, потом вызываешь form.repaint или что-то вроде того... На экселе я делал так и уже довольно давно, сейчас детали не помню...
-------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
kapbepucm |
|
|||
Опытный Профиль Группа: Участник Сообщений: 993 Регистрация: 14.6.2007 Где: Латвия Репутация: 3 Всего: 12 |
Oberon83, а тебе надо, чтобы ProgressBar отображал реальное время до конца момента ожидания или какую нибудь независимую анимацию?
-------------------- (С) kapbepucm |
|||
|
||||
Akina |
|
||||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 453 |
Ни в коем случае. Во-первых, уже ранее сказано, что процесс вычислительноемкий, и тормозить его дополнительно нет особого смысла. Во вторых (и это главное) - перерисовка формы не уберет тормоза с системы. Правильное решение - DoEvents. А в случае, когда количество циклов велико, а сами они непродолжительны - использовать вывод не в каждом цикле, а в каждом N-м
или через заданный промежуток времени T
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
Правила форума "Программирование, связанное с MS Office" | |
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |