Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Button задачи


Автор: -Mikle- 26.7.2003, 20:43
Доброго времени суток. У меня есть процедурка с большим циклом. В этой процедурке, периодически запускаю DoEvents [ If I MOD 100 = 0 Then DoEvents ] и в Caption окна пишу процент выполнения. Меняется он где-то раз 10 в секунду. Так вот, в строке заголовка изменения отображаются сразу, а в батоне панели задач, с нестабильным интервалом от 1 до, наверное, 10 секунд. Как сделаь чтобы в батоне изменения происходили сразу? thumbs-up.gif Т.е. при свернутом окне, имелась возможность наблюдать за процентом выполнения, как при доунлоаде в експлорере. Заранее спасибо за отзыв.
PS: Все это в ХР, незнаю как работает в других системах...

Автор: cardinal 27.7.2003, 16:50
Напиши этот кусочек процедуры своей, а то так только вот это в голову приходит:
Я ни разу не видел, чтобы в цикле так делали как ты
Код
If I MOD 100 = 0 Then DoEvents

и сам я всегда просто писал DoEvents внутри цикла. То есть так как никому из нас не известно, что происходит при DoEvents в цикле, то я бы так делал как все. Мое предположение: Если в цикле есть DoEvents, то запускается свой поток, в котором цикл и крутится, соответственно если делать DoEvents каждые сто прокруток цикла, то возможно этому потоку такой priority присвоится, что так процент выполнения и будет менятся у тебя на панели задач (как ты о описываешь) - если есть время то да, а если нет то потом как нибудь.

Вообщем попробуй, а XP у меня нет и ставить не собираюсь smile.gif (по принципу: а мне и с 98 хорошо), поэтому врятли смогу кому-нибудь реально помочь с проблемами в XP, тем более, что туда, наверно, лучше с VB 6 не суваться вообще. Там наверно с VB net проблем поменьше...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)