Прогресс останавливает выполнение проги | |
---|---|
Yason Сообщений: 214 Откуда: Питер Дата регистрации: 03.07.2002 |
Добрый день всем!
решил наконец вмеcто анимированных картинок воспользоваться прогресс-баром ( стандартный класс _therm.vсx в 8-м ;) ) Запускаю его как показано в samples: LOCAL loTherm, lcTask, lnPercent, lnSeconds, nDurValue loTherm = NewObject("_thermometer","_therm","","пошел" ) lcTask = " копифайл " nDurValue = 90 WITH loTherm .Show() FOR i = 1 TO nDurValue lnPercent = m.i/durvalue*100 .Update(lnPercent, lcTask) lnSeconds = SECONDS() DO WHILE lnSeconds+1>SECONDS() ENDDO ENDFOR .Complete() ENDWITH затем идут долгие copy files... nDurValue определил в секундах опытным путем ;) предназначен прогрессбар для развлечения юзера в помент копирования файлов ;) Он жмет кнопку, куда вставлен указанный выше код и созерцает ;) Код отрабатывает, бар закрывается - и только после этого начинается копирование. Подскажите, коллеги - как "запараллелить " эти процессы? Заранее благодарю. |
Re: Прогресс останавливает выполнение проги | |
---|---|
Aries Сообщений: 4349 Откуда: Николаев Дата регистрации: 24.12.2002 |
Фокс не многопоточен. Сначала сделает одно и только потом другое.
Пока у тебя выполняется код для програссбара, ты ничего сделать не сможешь. Есть вариант развести потоки. Но это на любителя. Поройся, в решениях есть "Нестандартный прогресбар" там это реализовано. ------------------ Я бы переписал жизнь, но Бог не дает мне исходники (с) ============================== Злостный линуксоид! |
Re: Прогресс останавливает выполнение проги | |
---|---|
Yason Сообщений: 214 Откуда: Питер Дата регистрации: 03.07.2002 |
Спасибо!
Это подходит ;) |
Re: Прогресс останавливает выполнение проги | |
---|---|
Петров Андрей Сообщений: 2506 Откуда: Химки (М.О.) Дата регистрации: 17.04.2002 |
Ниче не понял. Вы ждете пока отрисуется прогресс бар чтоли? Могу скинуть класс на основе закрашеных прямоугольников (чистый VFP) говорите ему SetPercent и он все отрисовывает...
А если ждете когда скопируются файлы тогда не путайте названием темы... Но все равно не понятно зачем вы ждете этого. Есть другие способы... ------------------ PS Недочитал тему до конца... |
Re: Прогресс останавливает выполнение проги | |
---|---|
Vadim Сообщений: 816 Откуда: Клайпеда Дата регистрации: 26.10.2000 |
Если именно файлОВ а не файлА, то и "стандартный" вполне подходит, если его дёргать при смене файла Вот пример простого упаковщика вижуальных библиотек:
------------------ |
Re: Прогресс останавливает выполнение проги | |
---|---|
Aries Сообщений: 4349 Откуда: Николаев Дата регистрации: 24.12.2002 |
Что Андрюша, запутали тебя да? ;)
Фишка в том что Yason хочет сделать один общий програсбар на вес цикл работы. Не сильно заморачиваясь при этом, т.е вычисления кол файлов, размер. ADIR() конечно же помог бы в этом, да просто таким способом гораздо проще. В включили прогресбар, а в конце выключили. Но к сожалению в одном потоке этого сделать нельзя, фокс то однопоточен. Поэтому есть вариант развести потоки. ------------------ Я бы переписал жизнь, но Бог не дает мне исходники (с) ============================== Злостный линуксоид! |
Re: Прогресс останавливает выполнение проги | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi, Yason!
Цитата:А надо не "затем" а "внутри" - т.е. в собственно цикле FOR. Как ты это там сделаешь - уже твои вопросы - возможно лучше загнать имена копируемых файлов в массив/курсор и внутри цикла брать из этого массива/курсора. И искусственную задержку с DO WHILE убери. ------------------ WBR, Igor |
© 2000-2024 Fox Club  |