Компонент Delphi Progressbar находиться в Палитре компонентов на странице Win32. Внешний вид представляет собой графическую полосу показывающую процесс работы продолжительной операции. Процесс заполнения полосы идет пропорционально, согласно проценту выполненных действий, слева направо синими кубиками. Цвет компонента изменить нельзя, цвет заполнения имеет синий цвет.
Min и Max свойства компонента, отвечающие за диапазон значений, соответственно минимальной и максимальное значение принадлежащее к целым числам.
Position - позиция, на которой находится в данный момент индикатор.
Расположим на форме компоненты Label, Button и Progressbar, см. образец на рисунке.
Мы сделаем перебор целых чисел (переменная i) от 0 до 50000 (Max), компонент Label будет показывать какое сейчас обрабатывается число и немного притормаживать выполнение приложения. Proc вычисляет процент проделанной работы.
Напишем обработчик кнопки Пуск.
procedure TForm1.Button1Click(Sender: TObject); var i, proc, Max : integer; begin Max := 50000; for i:=0 to Max do begin proc := ((i * 100) div Max); Label1.Caption := IntToStr(i); ProgressBar1.Position := proc ; Application.ProcessMessages; end; end;
Application.ProcessMessages; - дает возможность нашему приложению не зависнуть в процессе вычисления. В противном случае нам придется дождаться окончания вычислений, после чего мы увидим результат, а до этого приложение не будет подавать признаков жизни.
Итог: мы ознакомились с компонентом Progressbar и функцией Application.ProcessMessages.
Спасибо!
эта штука,полагаю,квадратики показывает ProgressBar1.Position := proc ;
а эта ,.. Application.ProcessMessages;..почему прога зависнуть должна?
или без нее отдельные процессы зависают?что она и для чего…
Сделайте это приложение, измените переменную Max, тогда Вы поймете что к чему.
думаю я следующее…нужно брать какой то проект ,где будут применяться какая то часть пройденных уроков иначе похоже просто на отдельные игрушки…
В принципе это возможно.