Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2011, 01:19   #1
RUSlan48
Пользователь
 
Аватар для RUSlan48
 
Регистрация: 06.12.2009
Сообщений: 65
Вопрос Связь ProgressBar и скачивания с FTP

Подскажите пожалуйста, как связать ProgressBar и процесс скачивания файла с FTP сервера?

Может можно как-нибудь напрямую с сервера читать файл какой-либо процедурой похожей blockread?
Делай что должен, и будь что будет
RUSlan48 вне форума Ответить с цитированием
Старый 05.02.2011, 11:32   #2
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Можно.
Все зависит напрямую от выбранного клиентского инструментария доступа к FTP-серверу.
mss вне форума Ответить с цитированием
Старый 05.02.2011, 11:58   #3
RUSlan48
Пользователь
 
Аватар для RUSlan48
 
Регистрация: 06.12.2009
Сообщений: 65
По умолчанию

я использовал Indy, но с progressbar'ом я зашёл в тупик, тут моих скудных знаний не хватило... Может кто подскажет?
Делай что должен, и будь что будет
RUSlan48 вне форума Ответить с цитированием
Старый 05.02.2011, 12:04   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

события OnWork*** компонента используйте.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.02.2011, 12:30   #5
RUSlan48
Пользователь
 
Аватар для RUSlan48
 
Регистрация: 06.12.2009
Сообщений: 65
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
события OnWork*** компонента используйте.
это интересно... а где можно про него почитать, или пример посмотреть?

И ещё, как я понимаю, чтобы использовать это событие для связи с progressbar'ом, нужно знать размер скачиваемого файла, а как его узнать, если он на сервере, я тоже не знаю...
Делай что должен, и будь что будет

Последний раз редактировалось RUSlan48; 05.02.2011 в 12:37.
RUSlan48 вне форума Ответить с цитированием
Старый 05.02.2011, 12:37   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

блин, а что прочитать?

названия событий говорят сами за ся.
названия передаваемых параметров тоже.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.02.2011, 12:51   #7
RUSlan48
Пользователь
 
Аватар для RUSlan48
 
Регистрация: 06.12.2009
Сообщений: 65
По умолчанию

а что передать в качестве параметра типа TWorkMode?
Этот тип описывает "способ" работы, я так понимаю..?
Делай что должен, и будь что будет
RUSlan48 вне форума Ответить с цитированием
Старый 05.02.2011, 13:51   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вообще то это вам передают а не вы.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.02.2011, 14:20   #9
RUSlan48
Пользователь
 
Аватар для RUSlan48
 
Регистрация: 06.12.2009
Сообщений: 65
По умолчанию

вроде немного въехал, нашёл пример, чего-то по нему написал, видимо совсем не то...

Вот кусок программы:
Код:
procedure tform1.FTPWork(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer);
begin
  OKBottomDlg3.ProgressBar1.Position := AWorkCount;
end;

procedure tForm1.FTPWorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer);
begin
  OKBottomDlg3.ProgressBar1.Max := id.Size(Fname);
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
      savedialog1.FileName:=listbox1.Items[listbox1.ItemIndex];
      if savedialog1.Execute then begin
         FName:=listbox1.Items[listbox1.ItemIndex];
         OKBottomDlg3.Label2.Caption:=listbox1.Items[listbox1.ItemIndex];
         OKBottomDlg3.Show;
         id.OnWork := FTPWork;
         id.OnWorkBegin:= FTPWorkBegin;
         id.Get(listbox1.Items[listbox1.ItemIndex], savedialog1.FileName, true, false);
      end;
end;
Код BitBtn3Click, похоже совсем не правильный, потому что OKBottomDlg3 зависает и
в конце концов ошибка: TProgressBar property out of range, а файл получается пустой.
Я не совсем понимаю, что делать с id.Get (куда его запихать), а точнее совсем не понимаю...

Подскажите пожалуйста чайнику :-)
Делай что должен, и будь что будет
RUSlan48 вне форума Ответить с цитированием
Старый 05.02.2011, 16:45   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
procedure tForm1.FTPWorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer);
begin
  OKBottomDlg3.ProgressBar1.Max := AWorkCountMax;
end;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ProgressBar для скачивания KoBRaAndrey Работа с сетью в Delphi 5 04.04.2011 23:52
ProgressBar, скачивания файла по url serres Общие вопросы .NET 16 13.11.2010 06:16
Скачивания файла designer999 Работа с сетью в Delphi 15 22.02.2010 22:21
Защита от скачивания armref Безопасность, Шифрование 2 27.09.2009 14:03
Связь FTP Ксеноцид Работа с сетью в Delphi 4 30.03.2008 04:23