_GlaD1aT(OR)_
26.07.2008, 14:48
Немного об Progress Bar
Многие новички Delphi задаются вопросом как сделать что-бы прогресс бар 'тикал'. Вот сейчас мы рассмотрим компонент ProgressBar со страницы библиотеки Win32, предназначенную для отображения в стиле Windows 95/98 хода процессов, занимающих заметное время, например, копирования больших файлов, настройку приложения, установку приложения на компьютере и т.п. Пример хода процесса компонентами ProgressBar :
http://s44.radikal.ru/i105/0807/68/4d29b2ea0f23.jpg (http://www.uined.ru)
Основные свойства 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;
Исходник (http://depositfiles.com/files/6788922) . Спасибо за внимание
Многие новички Delphi задаются вопросом как сделать что-бы прогресс бар 'тикал'. Вот сейчас мы рассмотрим компонент ProgressBar со страницы библиотеки Win32, предназначенную для отображения в стиле Windows 95/98 хода процессов, занимающих заметное время, например, копирования больших файлов, настройку приложения, установку приложения на компьютере и т.п. Пример хода процесса компонентами ProgressBar :
http://s44.radikal.ru/i105/0807/68/4d29b2ea0f23.jpg (http://www.uined.ru)
Основные свойства 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;
Исходник (http://depositfiles.com/files/6788922) . Спасибо за внимание