Форум: "Сети";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];
ВнизУзнать процент отправки Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c