ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

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

Репутация: 31
Отправить сообщение для _GlaD1aT(OR)_ с помощью ICQ
По умолчанию Немного об 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;



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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сдал тес. есть логин и пароль, и вся инфа. нужно немного мозгов) Zakary Уязвимости 3 19.05.2008 16:42
Куплю немного фтп для спама PomaH9991 Доступы, shells, ftp - Покупка, продажа 0 21.03.2008 21:10
You can't bring that dog in this bar! PEPSICOLA Болталка 4 24.03.2006 08:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ