Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];

Вниз

Сколько байт осталось переслать?   Найти похожие ветки 

 
Александр из Минска ©   (2004-04-10 17:21) [0]

Вот я пересылаю файлик. Хочу показать ProgressBar для состояния его закачки. Только никак не могу найти, как узнать сколько байт я уже переслал. Помогите, пожалуйста...
Я использую TIdTCPServer and TIdTCPClient
Файл посылаю так: IdTCPServer.WriteStream(...


 
Александр из Минска ©   (2004-04-14 16:52) [1]

Неужели нет вариантов. Мне уже советовали смотреть размер файла, который создается во время его передачи из сервера на клиент. Но этот способ не очень хорош, т.к. IDCTPClient.ReadStream(...) полностью все действия моей программы останавливает (ни таймер ни что другое не работает => во время закачки не видно того, как ProgressBar рисует ползунок и проценты)!
Пожалуйста, помогите решить эту проблему!


 
Polevi ©   (2004-04-14 17:09) [2]

плохой совет, но если очень сильно хочется - можно другим потоком читать значение Stream.Position


 
Digitman ©   (2004-04-14 17:17) [3]

кто ж тебя понуждает стримом посылать/принимать ? посылай/принимай блоками удобного размера !

блок передал - хрясь ! - обновил прогресс-бар передатчика..
блок принял - хрясь ! - обновил прогресс-бар приемника..


 
Verg ©   (2004-04-14 17:19) [4]

Смотря какой Stream передаешь.

Одним словом, создаешь наследника этого самого Stream, например:

TMyFileStream = class(TFileStream)
 function Read(var buf; Count : integer):integer; override;
end;

function TMyFileStream.Read(var buf; Count : integer):integer;
begin
 result := inherited Read(Buf, Count);
 // Вот здесь увеличиваешь прогресс бар на величину result
end;

Ну а передаешь именно этого класса потоки
var
 Str : TMyFileStream;
begin
 Str := TMyFileStream.Create(Filename, fmOpenRead or fmShareDaynyWrite);
 ....WriteStream(Str);
.....


 
Polevi ©   (2004-04-14 17:40) [5]

>Verg ©   (14.04.04 17:19) [4]
гениально
и как мне в головоу такое не пришло ?


 
Александр из Минска ©   (2004-04-14 23:17) [6]

Огромное Спасибо! Теперь все будет великолепно!!!



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.038 c
14-1083752201
Vlad Oshin
2004-05-05 14:16
2004.05.30
Логические задачи в среду :)


7-1083300050
WondeRu
2004-04-30 08:40
2004.05.30
Заголовочный файл WMI для Delphi


14-1084352873
}|{yk
2004-05-12 13:07
2004.05.30
Выбор лингвистического обеспечения


14-1083836804
oflaund
2004-05-06 13:46
2004.05.30
Помогите решить задачу на pascal e


6-1081684301
Leos
2004-04-11 15:51
2004.05.30
Proxy





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский