|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.08.2010, 18:26 | #1 |
Пользователь
Регистрация: 23.12.2009
Сообщений: 47
|
Отображение загрузки в прогрессбаре
Здравствуйте! Пишу я обновлялку для своих программа, она будет унивесальная, настраивается из ини файла. Всё уже готово, но осталась одна деталь, она не даёт мне покоя...это отображение загрузки файла обновления. Хочу осуществить её при помощи Прогрессбара, пробовал много спосабов, но не получилось.
Способ, которым я хочу это осуществить: Узнаю размер файла, присваиваю его значение максимальному прогрессбара, после чего начинаю узнавать текущий размер файла на компе, и это значение присваиваю позиции прогрессбара. Проблема в том, что когда я пытаюсь узнать текущий размер файла программа выдаёт ошибку, так как файл занят и не доступен....как это обойти? Загрузка выполняется в отельном потоке, выполняется функцией: Код:
Поиск юзал. Прошу помочь, кто сможет дайте пример. |
14.08.2010, 18:32 | #2 |
Новичок
Джуниор
Регистрация: 01.05.2010
Сообщений: 1
|
Может быть, стоит ввести переменную и считать получаемые пакеты? И присваивать значение PrgressBar'а этой переменной?
Я сам в этом мало понимаю, но первая мысль, пришедшая на ум, озвучена выше. |
14.08.2010, 23:33 | #3 |
₪₪₪₪₪₪₪₪
Форумчанин
Регистрация: 16.04.2007
Сообщений: 471
|
Первое - нужно получать размер файла-обновления. Самый простой вариант - поле Content Length. Другое дело - этого поля просто может не быть (редко, но бывает). Вот кстати живой пример.
|
15.08.2010, 00:28 | #4 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
r9m это не совсем то что ему надо..
AmbaQ а ты попробуй по другому.. на источнике обновлений (веб сервер) создавай ini файл с уже готовыми данными.. Имя файла Размер exe в байтах и идентификатор по которому сравниваешь, допустим хеш-суммма или версия exe. в программе которую сопираешся обновлять, все проще.. Скачиваешь файл, и в переменные передаёшь данные из ini, ппотом значения этих переменных присвайваешь чему надо.. для прогресс бара максимум будет это размер exe в байтах. вримерно это выглядит так: на веб-сервере есть файл exe , рядом ini вот такого содержания: Цитата:
и переменым из var присвайваем значения: Код:
|
|
15.08.2010, 07:08 | #5 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,716
|
А еще красноглазые системные программисты говорят, что у многих ВинАПИ функций для скачивания файлов есть возможность использовать callback-функции прогресса.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Файлы загрузки | Яр|/||< (^_^) | Операционные системы общие вопросы | 6 | 03.07.2009 09:55 |
Отображение скрытых файлов и папок и отображение розширения всех файлов | beegl | Общие вопросы Delphi | 10 | 14.12.2008 22:02 |