Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ProgressBar i TFileStream

[es] :: Pascal / Delphi / Kylix :: ProgressBar i TFileStream

[ Pregleda: 1733 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

brenas
srem

Član broj: 50753
Poruke: 110
*.vdial.verat.net.



Profil

icon ProgressBar i TFileStream07.06.2007. u 23:48 - pre 205 meseci
Imam dva TFileStream-a. Iz jednog kopiram u drugi funkcijom CopyFrom( Source,Count).
Velicinu Stream uzimam sa "prvistrim.Size;". Kako mogu da dobijem povratnu informaciju koliko je bajta trenutno(do sada) kopirano. Hocu sve to da povezem sa ProgressBar-om ili Gauge-om pami treba taj "Progress".
 
Odgovor na temu

Milan Milosevic

Član broj: 67
Poruke: 932
91.150.118.*



+31 Profil

icon Re: ProgressBar i TFileStream08.06.2007. u 06:28 - pre 205 meseci
Neznam dali te informacije mozez da dobijes direktno, ali sigorno mozes da kopiras deo po deo podataka. Na kraju svakog dela upises progres prebacivanja, ako me razumes.
Rcimo Size podelis na sto dela
VelicinaDela:=FileStream.Size;
VelicinaDela:=VelicinaDela div 100;
For i:= 1 to 100
CopyFrom( Source,VelicinaDela)
Odprilke tako nekako.
 
Odgovor na temu

brenas
srem

Član broj: 50753
Poruke: 110
*.vdial.verat.net.



Profil

icon Re: ProgressBar i TFileStream08.06.2007. u 12:35 - pre 205 meseci
Tacno! Hvala ti!
 
Odgovor na temu

brenas
srem

Član broj: 50753
Poruke: 110
*.vdial.verat.net.



Profil

icon Re: ProgressBar i TFileStream09.06.2007. u 23:49 - pre 205 meseci
Ako nekome nekad zatreba...


OnClick(nekog button-a);
var
ulaz,izlaz:TFileStream;
izlazvelicina:integer;
try
fajl:=ExtractFilePath(Application.ExeName)+'Podaci.fdb';
ulaz:=TFileStream.Create(fajl,fmOpenRead);
izlaz:=TFileStream.Create('Podaci.sin',fmCreate);
izlaz.Position:=0;
ulaz.Position:=0;
izlazvelicina:=izlaz.Size;
ProgressBar1.Visible:=True;
ProgressBar1.Max:=ulaz.Size ;
while ulaz.Size>izlazvelicina do
begin
ProgressBar1.StepBy(100);
if (ulaz.Size-izlazvelicina)>100 then
izlaz.CopyFrom(ulaz,100)
else
izlaz.CopyFrom(ulaz,ulaz.Size-izlazvelicina );
izlazvelicina:=izlaz.Size;
end;
finally
FreeAndNil(ulaz);
FreeAndNil(izlaz);
ProgressBar1.Position:=0;
ProgressBar1.Visible:=False;
end;

Naravno ovo treba 'malo' i optimizovati!
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: ProgressBar i TFileStream

[ Pregleda: 1733 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.