Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Глючит Porgressbar? [Delphi, Windows]


andreil ©   (2008-03-04 20:10:00) 

В программе использую стандартный и TKOLQProgressBar. При работе их обоих одинаково глючит. При небольшом значении MaxProgress (около 160 000 000) все нормально, но вот при больших значениях при изменении прогресса этот самый прогресс скатывается в минуса! при этом переменная, которая в программе отвечает за хранение прогресса, находится в плюсах. Работа с Прогрессбар-ами у меня организованна так:
var progress: integer;
GcfProgress.MaxProgress:=GetItemSize;
.....
progress:=progress+FileSize;
GcfProgress.Progress:=progress;


andreil   (2008-03-05 17:00:00) [1]

Я понял ;) Щас переделал под процентное отображение - все ОК. Спасибо.


Danger   (2008-03-05 11:44:00) [2]


> andreil ©   (04.03.08 21:43) [2]
> Спасибо, помогло :) буду знать, как делать в следующий раз
> ;)ЗЫ: А на VCL так, как я написал, работало 100% и работает
> до сих пор, а вот на КОЛ - нет :(

Я вообще не вижу смысла оперировать в программе реальными (большими) значениями прогресса, передавая это значение контролу - проще работать с процентной величиной, как посоветовал Compiler. А скатывается в минуса, скорее всего, потому что значение где-то превышает размерность типа данных.


andreil   (2008-03-04 21:43:00) [3]

Спасибо, помогло :) буду знать, как делать в следующий раз ;)

ЗЫ: А на VCL так, как я написал, работало 100% и работает до сих пор, а вот на КОЛ - нет :(


Compiler   (2008-03-04 21:13:00) [4]

Попробуй что-нибудь типа этого:

var ItemSize, progress: integer;
ItemSize:=GetItemSize;
GcfProgress.MaxProgress:=100;
.....
progress:=progress+FileSize;
GcfProgress.Progress:=Trunc(progress/ItemSize*100);


Наверх

Титульная страница Поиск, карта сайта Написать письмо