Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 10.03.2016
Сообщений: 130
1

Как связать FTP и progress bar?

06.04.2016, 18:59. Показов 2862. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
P.S. как для скачивания(get), так и для отправки(put) файла на FTP. C помощью IDFTP.Sizе узнаю размер файла, но как узнать, сколько отправилось уже и это в прогресс бар засунуть?

Добавлено через 13 минут
Размер файла который надо отправить я тоже знаю
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.04.2016, 18:59
Ответы с готовыми решениями:

Как работает Progress Bar
Все доброе время суток, не подскажете как работает Progress Bar и для чего он нужен?

Progress bar
как сделать так, чтобы при нажатии кнопки(загружающая в memo текст) она начинала работать, а когда...

Progress bar?
Доброе время суток! Подскажите, пожалуйста, что лучше использовать? Программа простая, к...

progress bar
Вообщем суть в этом у меня есть 3 формы в первой форме заполняются эдит1 потом открывается идет...

17
5784 / 4526 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
06.04.2016, 21:42 2
смотри закладку events у TIDFtp
0
0 / 0 / 0
Регистрация: 10.03.2016
Сообщений: 130
07.04.2016, 15:51  [ТС] 3
Спасибо) А не знаете, как сделать, что бы если отправляешь файлы 10-15 мб программа не зависала? И ещё, когда файл отправляешь он просто скрол бар делает от 0 до 100, потом программа зависает, когда развисает пишет что файл отправлен.

Добавлено через 14 минут
от 0 до 100 сразу и зависает только когда файл >10mb, а так всё нормально работает
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
07.04.2016, 16:13 4
Цитата Сообщение от ManForCyber Посмотреть сообщение
он просто скрол бар делает от 0 до 100
он? злой волшебник?

что бы правильно шел скрол бар ты должен порезать файл на 100 частей и по одной отправлять их на фтп.
тогда будет соответствие, а сейчас у тебя обман
0
0 / 0 / 0
Регистрация: 10.03.2016
Сообщений: 130
07.04.2016, 17:25  [ТС] 5
блин.. что вы такой умный то... Почему мне такие простые мысли в голову то не лезут))) А может ещё скажете как сделать, что бы прога не зависала?)
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
07.04.2016, 17:35 6
Цитата Сообщение от ManForCyber Посмотреть сообщение
А может ещё скажете как сделать, что бы прога не зависала?)
тебе простой (очень) и неправильный (просто ужас как)
или сложный (очень) и правильный (просто ужас как)?
0
0 / 0 / 0
Регистрация: 10.03.2016
Сообщений: 130
07.04.2016, 17:41  [ТС] 7
Мне правильный) И вы говорите делить на 100. Я знаю размер файла который будет отправляться или приниматься, но как узнать сколько уже отправлено от этого файла? И может есть вообще книжечка про idFPT в делфи.. гуглю гуглю... а только одни проблемы у всех с ним, а что это вообще такое найти не могу.
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
07.04.2016, 17:48 8
хм, оказывается есть еще несколько путей (IdAntiFreeze1: TIdAntiFreeze

посмотри тут - готовое приложение с исходником
http://www.delphisources.ru/pa... _serv.html
1
0 / 0 / 0
Регистрация: 10.03.2016
Сообщений: 130
07.04.2016, 18:49  [ТС] 9
Прога ужас какая страшная и не рабочая.. ну или я её сломал. Файл на сервер выбрал большой. В логе написано что началась загрузка, подождал чуть. Ничего не происходит. Прогу закрыть пробовал, зависла. +progress бар не работает. Маленькие файлы так же отправляет спокойно, но прогресс бара так же нет

Добавлено через 27 минут
В интернете нашёл про IdAntiFreeze1: TIdAntiFreeze. Но что-то он вообще плохо помогает, а ещё прочитал про то, что можно передавать потоками... Это поможет с зависанием?
0
5784 / 4526 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
08.04.2016, 08:58 10
ты неправильно прочитал. не можно, а нужно!

в классе потока создается процедура с параметрами , подходящими для обработки события IDFTP, OnProgress или OnWork не помню как там его.
При создании потока в нем создается IDFTP и ему присваивается этот обработчик
также потоку передается ссылка на прогресс-бар
В обработчике стоит единственный вызов
Delphi
1
2
FCurPosition := ... берем параметр обработчика
Synchronize(UpdateProgressBar);
Delphi
1
2
3
4
procedue TMyThread.UpdateProgressBar;
begin
  FProgressBar.Position := FCurPosition;
end;
0
0 / 0 / 0
Регистрация: 10.03.2016
Сообщений: 130
08.04.2016, 10:37  [ТС] 11
Спасибо большое.. Буду пробовать...
0
Эксперт .NET
10563 / 6487 / 1506
Регистрация: 25.05.2015
Сообщений: 19,654
Записей в блоге: 14
08.04.2016, 10:41 12
ManForCyber, на 100 частей делить не нужно. Соотношение отправленного к общему объёму можно показывать на ProgressBar и без 100 частей.
0
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
08.04.2016, 13:26 13
Rius, для этого нужно знать какой размер мы передали
а как его узнать, используя idFTP.Put?
0
Эксперт .NET
10563 / 6487 / 1506
Регистрация: 25.05.2015
Сообщений: 19,654
Записей в блоге: 14
08.04.2016, 13:46 14
qwertehok, а эти события о количестве файлов сообщают или о байтах?
BeginWork
DoWork
EndWork
0
5784 / 4526 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
08.04.2016, 13:55 15
передай 1 файл посмотри
передай 2 файла посмотри
0
Эксперт .NET
10563 / 6487 / 1506
Регистрация: 25.05.2015
Сообщений: 19,654
Записей в блоге: 14
08.04.2016, 14:04 16

Не по теме:

Если случится невероятное и я пересяду на этот ваш Delphi, обязательно посмотрю.


IdFTP + ProgressBar
Для скачки с сервера, говорят, AWorkCountMax не определяется автоматически, надо запрашивать. А при закачке определяется. И это для одного файла.

http://www.indyproject.org/doc... Int64.html
0
0 / 0 / 0
Регистрация: 10.03.2016
Сообщений: 130
08.04.2016, 14:48  [ТС] 17


Такой способ для FTP подойдёт? Или для FTP совсем по другому?

Не могу найти специально для FTP где.
0
5784 / 4526 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
09.04.2016, 12:34 18
какая разница ftp или нет.
данный пример не очень правильный но вполне работоспособный
вот тут я подробно писал про потоки
сам поток в терминах ОС выполняется только в методе Execute
весь остальной класс - просто класс. с полями, которые вам будут нужны при работе потока
создали, заполнили и запускаем
внутри Execute нельзя обращаться к VCL в том числе и к форме и progress
это можно делать только обернув вызов в Synchronize();
поэтоу и выстраивается довольно сложная цепь из предыдущего поста
0
09.04.2016, 12:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2016, 12:34
Помогаю со студенческими работами здесь

Задание Progress bar
Имеется прграмма (её исполнительный фрагмент, больше в ней ничего нет), которая открывает текстовый...

Progress bar квадратиками хочу на XE5
Вот. Все работает, но сплошной полосой, а мне нравятся олдскульные квадратики - где взять?

Можно ли переделать Progress bar в Track bar?
Можно ли переделать Progress bar в Track bar? От прогресбара нужно всего лишь, что бы можно было...

Progress Bar - КАК?
как мне отобразить процесс хода вычисления в Progress Bar Control? вот например мне надо в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru