Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.05;
Скачать: CL | DM;

Вниз

Узнать процент отправки   Найти похожие ветки 

 
MRAk   (2005-10-31 04:26) [0]

собственно есть такой кусок отправки файла:
   fs.Position:= 0;
   Socket.SendText("#$!file"+IntToStr(fs.Size) + #0 +ExtractFileName(putfail)+ #0);
   Socket.SendStream(fs);
вот тут вопрос как можно узнать сколько процентов отправленно? только не через ответные сообшения...

Заранее спасибо


 
Digitman ©   (2005-10-31 08:37) [1]


> как можно узнать сколько процентов отправленно?


реализуй своего наследника класса TFileStream, в нем перекрой вирт.метод Read()


 
MRAk   (2005-10-31 12:57) [2]

хм а как это сделать? можно пример?


 
Digitman ©   (2005-10-31 13:08) [3]

TMyFileStream = class(TFileStream)
..
protected
 function Read(var Buffer; Count: Longint): Longint; override;
..
end;

...
function TMyFileStream := Read(var Buffer; Count: Longint): Longint;
begin
 Result := inherited;
 showmessage(Format("Отправлено %2u процентов", [Result * 100 / Size]);
end;

fs := TMyFileStream.Create(..);
...
Socket.SendStream(fs);


 
MRAk   (2005-10-31 14:51) [4]

Простите за нубовский вопрос
Result := inherited;
Это я так понимаю озночает использовать стандартные действия? а то он ругается на это место


 
Digitman ©   (2005-10-31 15:01) [5]


> озночает использовать стандартные действия?


это означает вызов одноименного метода класса-предка

Result := inherited Read(Buffer, Count);


 
MRAk   (2005-10-31 20:16) [6]

Спсибо.. большое вот такой код получился:

function TMyFileStream.Read(var Buffer; Count: Longint):Longint;
begin
Result := inherited Read(Buffer, Count);
obsh:=obsh+result;
unit2.Form2.Gauge1.Progress:=round((Obsh/Size)*100);
if round((Obsh/Size)*100)=100 then
unit2.Form2.Label3.caption:="Файл успешно отправлен... ожидаем конца приема";
end;



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

Текущий архив: 2006.02.05;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.05 c
15-1137252416
McSimm
2006-01-14 18:26
2006.02.05
Обнаружено сканирование портов с адреса delphimaster.ru


2-1137665912
Ell
2006-01-19 13:18
2006.02.05
Можно ли сделать, чтобы программа удаляла сама себя?


2-1137578044
tigra
2006-01-18 12:54
2006.02.05
StringGrid-страшная зверя


1-1136750829
AKMTT
2006-01-08 23:07
2006.02.05
потоки и таймер


6-1130345013
cerber
2005-10-26 20:43
2006.02.05
Как програмно менять MTU