|
Вопрос # 5 153/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
Как сделать индикатор прогресса копирования файла с фтп?
Общий размер файла известен.
Копирую при помощи idFTP1.Get();
Т.е при копирование чтобы отображалось размер скопированного файла в ProgressBar1
Что бы пользователь наглядно видел прогресс
Как ProgressBar1 отобразить я знаю, а вот как получить сколько я скопировал байт файла с фтп не знаю…
Т.е как передать в ProgressBar1.position:= // количество байт уже скопированных
А еще желательнее если их несколько то отображать в ProgressBar1 общий размер всех файлов
Приложение: Переключить в обычный режим- Var
- s:string;
- i:Integer;
- size:Integer;
- data:string;
- dat:TDateTime;
- name:string;
- FTPList: TStringList;
- Begin
-
-
-
-
- if FTPList.Count > 0 then
- for I := 0 to FTPList.Count - 1 do
- begin
- size:=IdFTP1.DirectoryListing.Items[i].Size;
- name:=IdFTP1.DirectoryListing.Items[i].FileName;
- ProgressBar1.Min:=0;
- ProgressBar1.Max:=size;
-
-
-
-
- End;
 |
Вопрос задал: nar (статус: Посетитель)
Вопрос отправлен: 4 апреля 2011, 17:32
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: F.@.E.R
Здравствуйте, nar!
Попробуй вот этот код.
Должен работать.
Приложение: Переключить в обычный режим- procedure TForm1.idFTP1Work
- begin
- if FShowStep then
- PostMessage(Steping.Handle, PROGRESS, AWorkCount);
- end;
- procedure TStepProgress.WndProc
- begin
- case Msg.Msg of
- PROGRESS : ProgressBar1.Position:=Msg.WParam;
- begin
- ProgressBar1.Position:=0;
- ProgressBar1.Max:=Msg.WParam;
- end
- else
- inherited;
- end;
 |
Ответ отправил: F.@.E.R (статус: 1-ый класс)
Время отправки: 4 апреля 2011, 19:48
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 5 апреля 2011, 09:51; участников в обсуждении: 3.
|
Вадим К (статус: Академик), 4 апреля 2011, 17:58 [#1]:
у IdFTP должно быть событие OnWork. оно будет вызываться каждый раз, когда пришли новые данные для файла который принимается/передается. и ещё два событие OnWorkStart и OnWorkStop (названия могу немного ошибаться)
Галочка "подтверждения прочтения" - вселенское зло.
|
|
F.@.E.R (статус: 1-ый класс), 4 апреля 2011, 18:50 [#2]:
Ну если известен полный размер файла, то отображать сколько уже принято и
Отображать в TTrackBar
|
|
nar (статус: Посетитель), 5 апреля 2011, 09:39 [#3]:
Спасибо за код и мысль как сделать.
вопрос решен
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|