Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизTprogresssBar с отображением процентов Найти похожие ветки
← →
kyn66 © (2010-04-06 15:54) [0]Добрый день, мастера. В приложениях где происходит некоторый циклический процесс отображаю его с помощью ProgressBar и метки в процентном соотношении. Вот такой код:
Var
Nzap,
NzapV,
NzapC : Integer;
begin
DM1.ClientTbl.First;
PB1.Position := 0;
PB1.Max := DM1.ClientTbl.RecordCount;
NzapC := Trunc(DM1.ClientTbl.RecordCount/100);
Nzap := 0;
NzapV := 0;
While not DM1.ClientTbl.EOF do
begin
Inc(Nzap);
if Nzap >= NzapC then
begin
Inc(NzapV);
ProcLab.Caption := IntToStr(NzapV) + " %";
Nzap := 0;
end;
Application.ProcessMessages;
...
end;
...
Код всегда отрабатывал отлично. Но сегодня сталкнулся с ситуацией, когда кол-во записей меньше 100 и предоставляемая процентная информация оказалась неверной. Т.е. ppfgbctq в таблице 80, NzapC равен 0, ну и соответственно проценты показываются только до 80.
Каким образом модернезировать код, чтобы для всех ситуаций правильно было показание процентов вне зависимости от кол-ва записей. ?
← →
Медвежонок Пятачок © (2010-04-06 15:59) [1]боже, какая прелесть
← →
12 © (2010-04-06 16:08) [2]ProcLab.Caption := IntToStr(round(DM1.ClientTbl.RecNo/DM1.ClientTbl.RecordCount*100)) + " %";
← →
kyn66 © (2010-04-06 16:33) [3]2 12
Таблица проиндексирована по ключу(два поля) и поэтому получается блуждающий RecNo.
← →
12 © (2010-04-06 16:36) [4]ну примерно же ж..
DM1.ClientTbl.RecNo - Nzap
← →
kyn66 © (2010-04-06 16:39) [5]2 12
Большое спасибо. Я так и сделал. Поставил просто увеличивающийся Nzap вместо RecNo. (Думал успею отписаться до ответа).
← →
Dennis I. Komarov © (2010-04-06 16:40) [6]
> Медвежонок Пятачок © (06.04.10 15:59) [1]
То ли сейчас еще будет...
← →
Andy BitOff © (2010-04-06 19:29) [7]И эти люди занимаются программирование. Куда катится мир. =(
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.054 c