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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2008, 17:52   #1
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
Радость ProgressBar

Всем привет! Дан код сервера который передайт файлы. Подскажите пожалуста как мне написать код программы чтобы при передаче файла ProgressBar показывал сколько в общем уже передалось?

Procedure TForm1.ServerSocket1ClientRead(Send er: TObject;
Socket: TCustomWinSocket);
Var
Fs: TFileStream;
Data: TMemoryStream;
Begin
If Socket.ReceiveText = 'S' Then
Begin
Fs:=TFileStream.Create(Edit1.Text, FmOpenRead);
Try
Fs.Position:= 0;
Socket.SendText('Size:'+IntToStr(Fs .Size)+ #0);
Socket.SendStream(Fs);
Finally
End;
End;
End;

Заранее благодарен!
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 08.01.2008, 20:50   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

ну в этом случае если вы так делаете SendStream - врятли что получиться Поэтому более низкоуровневый подход я больше приветствую, т.к. легче под себя подстроить, а не самому подстраиваться
BOBAH13 вне форума Ответить с цитированием
Старый 08.01.2008, 20:55   #3
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

т.е. отсылать пакетами (допустим по 16 кб). Весь размер делим на 16 кб округляем, и получаем максимальное значение для прогрессбара. Затем после отправки каждого буфера +1 к текущему значению.
zetrix вне форума Ответить с цитированием
Старый 08.01.2008, 20:59   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

либо как zetrix говорит, либо использовать Indy
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 09.01.2008, 17:04   #5
SeRhy
Форумчанин
 
Аватар для SeRhy
 
Регистрация: 19.10.2007
Сообщений: 168
По умолчанию

сначала опредиляеш полный обём файла. Ставиш счетчик который считает сколько уже передано и делаеш так:
progresbar1.position:=progresbar1.m ax/(полный размер файла)*(размер информации которая уже была передана)
SeRhy вне форума Ответить с цитированием
Старый 09.01.2008, 21:18   #6
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Спасибо !!!
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ProgressBar Makarov Компоненты Delphi 3 04.02.2008 22:42
Новый ProgressBar Лубышев Компоненты Delphi 8 23.01.2008 12:10
ProgressBar Rahim1993 Общие вопросы Delphi 10 20.01.2008 21:28
ProgressBar pentiumForever Компоненты Delphi 2 07.09.2007 13:33