Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ProgressBar [D7, XP]


17.10.2006 ©   (2006-10-17 20:52:00) 

Есть код:
procedure TForm1.Button2Click(Sender: TObject);
var
fs:TFileStream;
begin
ClientSocket1.Host:=Edit2.Text;
ClientSocket1.Active:=true;
fs:=TFileStream.Create(Edit1.Text,fmOpenread);
try
fs.Position:=0;
ClientSocket1.Socket.SendText('Size:'+IntToStr(fs.Size)+#0);
ClientSocket1.Socket.SendStream(fs);
finally
end;
end;

Как сюда добавить ProgressBar???


Сергей М.   (2006-10-18 09:12:00) [1]


> 17.10.2006   (17.10.06 20:58) [3]


> знать сколько Файла отправлено


type
 TMyFileStream = class(TFileStream)
 private
   FOnReadProgress: TNotifyEvent;
 protected
   procedure Read(var Buffer; Count: Longint): Longint; override;
 public
   property OnReadProgress: TNotifyEvent read FOnReadProgress write FOnReadProgress;
 end;
...

procedure TMyFileStream.Read;
begin
 Result := inherited Read(Buffer, Count);
 if Assigned(FOnReadProgress) then
  FOnReadProgress(Self);
end;

..

procedure TForm1.DoReadProgress(Sender: TObject);
begin
 ProgressBar.Position := TStream(Sender).Position;
 ProgressBar.Update;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 fs:TFileStream;
begin
..
 fs:=TFileStream.Create(Edit1.Text,fmOpenread);
 fs.OnReadProgress := DoReadProgress;
..
 ProgressBar.Min := 0;
 ProgressBar.Max := fs.Size;
 ProgressBar.Position := 0;
 ClientSocket1.Socket.SendStream(fs);
..
end;


Anatoly Podgoretsky   (2006-10-18 00:24:00) [2]

А у ClientSocket1.Socket есть функция обратного вызова, если есть, то задача тривиально, если нет то передавай блоками фиксировано размера.


17.10.2006   (2006-10-17 20:58:00) [3]

Это надо для того чтобы знать сколько Файла отправлено


Ketmar   (2006-10-17 20:53:00) [4]

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


Kolan   (2006-10-17 20:53:00) [5]

procedure TForm1.Button2Click(Sender: TObject);
var
fs:TFileStream;
  ProgressBar: TProgressBar; 


Так?


Наверх

Титульная страница Поиск, карта сайта Написать письмо