Как да се прикрепя към лентата на прогреса

Да кажем, че имам цикъл, кажете това: for i := 0 to 10000 do begin listbox1.items.strings[i] := inttostr(a)+i; . край;

Как мога да прикача лента за напредък към него, така че да показва процента на изпълнение?

1. Преди цикъла задайте Min = 0, Max = 10000, Position = 0. 2. Добавете към цикъла: Позиция := i; Съобщения на Application.Process;

ProgressBar1.Max:=10; АКО i mod 1000 = 0 тогава ProgressBar1.Progress := ProgressBar1.Progress + 1;

И ако приемем, че имам следния код:

a := tfilestream.Create(edit2.Text,fmopenreadwrite); s := strtoint(edit1.Text); s := s*m; MemSize := a.Size; Inc (MemSize); Buf := AllocMem(MemSize); ost := a.Size mod s; num := a.Size divs; listbox1.Items.Add(inttostr(num+1)); listbox1.Items.Add(inttostr(a.Size)); for i := 1 to num do begin b := tfilestream.create(inttostr(i)+".pav",fmcreate); listbox1.Items.Add(inttostr(i)+".pav"); a.Read(buf^,s); b.write(buf^,s); край; Как мога да прикача тук лента за напредъка, така че да показва колко % от данните са записани от буфера към потока „B“?

>delphimun (06/13/03 17:07)

Дъвчете и слагате в устата си?

Аз самият прекарах половин ден, не работи, дори не мога да разбера как да свържа тази лента на прогреса там, но трябва да я свържете с редовете: a.Read(buf^,s); b.write(buf^,s); като, но как? Промяна на процедурите за четене и запис в модула chtol?

ProgressBar1.Max:=a.Size; След Write пишете ProgressBar1.AddProgress(s) Това е, ако размерът на потока е малък. Ако е голям (по-голям от свойството ProgressBar1.Max - той е от тип Integer), тогава или направете както казах по-рано, или използвайте TGauge

>Песен Многоблагодаря ви, само prgressbar няма свойство addprocess, има го само gauge

Но има свойство Position от целочислен тип и операцията за добавяне "+" може да се приложи към цели числа

С ProgressBar1 Направете Progress:=Progress+s;