| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Download from http server |
| Автор: Rodman 29.8.2006, 12:31 | ||
| Дароф. Я разобрал такой код:
но прога выдает для любого файла шаг и размер 1754... В чем бок??? Спасибо |
| Автор: _hunter 29.8.2006, 12:51 |
| во-первых: есть такая полезная кнопка "код" во-вторых: выноси весь код из потока, бери отладчик и тестируй. когда найдеш косяк -- спрашивай. |
| Автор: Rodman 29.8.2006, 16:19 | ||||
Вот эти две процедуры:
переменные AWorkCountMax и AWorkCount возвращают обе значение 1754... из главной формы я вызываю загрузку так
Подскажите где проблема плиз... |
| Автор: dumb 29.8.2006, 16:43 |
| http://forum.vingrad.ru/index.php?showtopic=82753 |
| Автор: Rodman 29.8.2006, 17:22 | ||
| Вот у меня таже проблема, что в "WorkBegin" FMaxProgress:=1514 (эта процедура вызывается один раз), а в "Work" сначала FProgress:=226, а второй раз уже FProgress:=1514. И проверки я добавил
файл скачивается в текущую папку, но размером 1514, хотя он более двух метров... Что в этом случае не так???? |
| Автор: Rodman 29.8.2006, 18:15 |
| Так эти процедуры у тя описаны в обычном юните с формой??? Просто я их описывал классом TThread, или у тебя также??? |
| Автор: Teran 29.8.2006, 18:58 |
| я делал без потоков и описывал их просто в классе с формой |
| Автор: Rodman 30.8.2006, 17:31 | ||
Скажи а вот та строка несет в себе какую нить функциональную особенность???
Teran Спасибо за пример... |
| Автор: Rodman 30.8.2006, 17:59 | ||||||
| http://forum.vingrad.ru/index.php?act=Attach&type=post&id=837835 Вот этот вот исходник показывает на ProgressBar'e уровень закачки, а есть ли какая нить возможность еще выводить количество закаченных байт / всего байт (размер файла) и также количество времени до окончания... Такая процедура есть (см. выше)
но если я добавляю в код исходника
то выдается ошибка Missing operator or semicolon Это можно как нить обойти??? Просто если я напишу
выдастся значение только после окончания закачки... Посдкажите... |
| Автор: Teran 30.8.2006, 18:15 | ||||
1 в процедуре procedure TFormDownloader.httpWorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer); ты присваиваеш progress.max=AWorkCountMax - это и есть "всего байт" 2 в процедуре procedure TFormDownloader.httpWork(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer); progress.Progress := AWorkCount; - это есть "количество закаченных байт " 3 время необходимо расчитывать самому пропробуй так:
|
| Автор: Rodman 30.8.2006, 18:25 |
| то что значат progress.max=AWorkCountMax и progress.Progress := AWorkCount я понял... просто мне в цыфрах надо было... и чтобы обновлялось в процессе... вот теперь обновляется... Спасибо... Добавлено @ 18:36 А вот теперь такое... Я таким образом скачиваю более новую версию приложения... Возможно ли такое??? Определил наличие новой версии->Скачал->закрыл старую версию (возможно даже удалить)->открыл новую Все автоматически... ??? |
| Автор: Teran 30.8.2006, 18:38 |
| конечно возможно у меня это реализовано с помощью еще одного exe файла который обновляет главную программу |
| Автор: Rodman 30.8.2006, 18:53 |
| т.е. я понимаю так... Старое приложение запускает вспомогательный *.ехе файл и он в свою очередь занимается заменой... Ну а возможно это совершить имея только старую и новую версию... без третье проги???? |
| Автор: Teran 30.8.2006, 19:48 | ||
без третьей стороны - никак |
| Автор: dumb 30.8.2006, 21:07 |
| "третью сторону" можно извлекать из ресурсов. Добавлено @ 21:09 ой... Rodman, тему новую создавай. один топик - один вопрос. |