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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2011, 17:38   #11
RUSlan48
Пользователь
 
Аватар для RUSlan48
 
Регистрация: 06.12.2009
Сообщений: 65
По умолчанию

Да =) Спасибо.

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

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

Да, спасибо =)

Только ProgressBar1 всё равно почему-то спит...
Делай что должен, и будь что будет
RUSlan48 вне форума Ответить с цитированием
Старый 05.02.2011, 17:50   #14
RUSlan48
Пользователь
 
Аватар для RUSlan48
 
Регистрация: 06.12.2009
Сообщений: 65
По умолчанию

ОЙ, не не не, последнее сообщение не в счёт
Делай что должен, и будь что будет
RUSlan48 вне форума Ответить с цитированием
Старый 05.02.2011, 17:53   #15
RUSlan48
Пользователь
 
Аватар для RUSlan48
 
Регистрация: 06.12.2009
Сообщений: 65
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
в OnWork суньте Application.ProcessMessages;
в смысле? просто сунуть? что это такое?
Делай что должен, и будь что будет
RUSlan48 вне форума Ответить с цитированием
Старый 05.02.2011, 17:56   #16
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

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

Что такое application.processMessages?
kangreon вне форума Ответить с цитированием
Старый 05.02.2011, 18:04   #18
RUSlan48
Пользователь
 
Аватар для RUSlan48
 
Регистрация: 06.12.2009
Сообщений: 65
По умолчанию

Запихнул, но ничего не изменилось. Сама программа не виснет, это вроде уладил, но с ProgressBar'ом всё по-прежнему

Причём не работает именно ProgressBar, т.к. OKBottomDlg3.Label1 изменяется в процессе скачивания

Ещё: если в процедуру tForm1.FTPWorkBegin вставить OKBottomDlg3.Edit1.Text:=inttostr(A WorkCountMax); то в OKBottomDlg3.Edit1.Text всё время висит 0
Делай что должен, и будь что будет

Последний раз редактировалось RUSlan48; 05.02.2011 в 18:21.
RUSlan48 вне форума Ответить с цитированием
Старый 05.02.2011, 22:17   #19
RUSlan48
Пользователь
 
Аватар для RUSlan48
 
Регистрация: 06.12.2009
Сообщений: 65
По умолчанию

Всё, я разобрался, всем спасибо))
вот так всё работает:
Код:
procedure tform1.FTPWork(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer);
begin
  OKBottomDlg3.ProgressBar1.Position := AWorkCount;
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;

         OKBottomDlg3.ProgressBar1.Max:=id.Size(listbox1.Items[listbox1.ItemIndex]);

         id.Get(listbox1.Items[listbox1.ItemIndex], savedialog1.FileName, true, false);
      end;
end;
Всё оказалось проще))
Делай что должен, и будь что будет
RUSlan48 вне форума Ответить с цитированием
Старый 14.01.2016, 16:39   #20
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Код следующий:
Код:
procedure TForm1.IdFTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Int64);
begin
 ProgressBar1.Position:= AWorkCount;
 Application.ProcessMessages;
end;

procedure TForm1.IdFTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Int64);
begin
ProgressBar1.Max := AWorkCountMax;
end;

procedure TForm1.IdFTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
begin
ProgressBar1.Position:= 0;
end;
Не могу понять почему не работает. Progressbar никак не реагирует.
Dux вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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