Показать сообщение отдельно

Немного об Progress Bar
  #1  
Старый 26.07.2008, 14:48
_GlaD1aT(OR)_
Познающий
Регистрация: 24.07.2008
Сообщений: 47
С нами: 9367314

Репутация: 31
По умолчанию Немного об Progress Bar

Немного об Progress Bar


Многие новички Delphi задаются вопросом как сделать что-бы прогресс бар 'тикал'. Вот сейчас мы рассмотрим компонент ProgressBar со страницы библиотеки Win32, предназначенную для отображения в стиле Windows 95/98 хода процессов, занимающих заметное время, например, копирования больших файлов, настройку приложения, установку приложения на компьютере и т.п. Пример хода процесса компонентами ProgressBar :

Основные свойства ProgressBar'a :

Max - Максимальное значение позиции (Position, Progress), по умолчанию — 100%

Min - Начальное значение позиции (Position, Progress)

Orientation - Ориентация шкалы компонента: pbHorizontal — горизонтальная, pbVertical — вертикальная

Smooth - Непрерывное (при значении true) или дискретное отображение процесса. На рисунке задано Smooth = true

Step - Шаг приращения позиции, используемый в методе StepIt. Значение по умолчанию — 10.

---------------------------------------------

Вот пример работы ProgressBar'a с таймером и без таймера + исходник


// если таймер то интервал допустим 1000 - обновление каждую секунду
// для прогрессбара max = 60 - минута
begin
Timer.Enabled := ProgressBar.Position < ProgressBar.Max;
ProgressBar.Position := ProgressBar.Position + 1;
end;
--------------------------------
// чтобы без таймера
var
k: DWORD;
begin
ProgressBar.Max := 60;
ProgressBar.Min := 0;
ProgressBar.Position := ProgressBar.Min;
k := GetTickCount;
while k + (60 * 1000 {минута}) < GetTickCount do
begin
ProgressBar.Position := (GetTickCount - k) / 1000;
// тут обычно
Application.ProcessMessages;
end;
end;



Исходник . Спасибо за внимание
 
Ответить с цитированием