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

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

Что это - Constant expression expected?


PJiur ©   (2012-03-16 22:20:00) 

Здравствуйте, пытаюсь сделать вот что:

Var
P,V,Vi:integer;
y:Double;
...
 y:=(V)/Vi*100 ;
frmmain.prgProcentVip.Position:= y;
....
Компилятор дает ошибку
[DCC Error] UntMain.pas(829): E2026 Constant expression expected

А как тогда правильно написать?


Cobalt   (2012-03-20 23:25:00) [1]

Я обновляю не чаще 1 раза в 2 секунды.


sniknik   (2012-03-18 11:02:00) [2]

> то можно обновлять Position только если V чётно, или кратно десяти, и т.д.)
это все одно тот же расчет, только до цикла, в цикле придется кратность по высчитанному коэффициенту определять.
ИМХО, без разницы, что в лоб что по лбу.


Inovet   (2012-03-18 09:13:00) [3]

> [4] begin...end ©   (18.03.12 08:57)
> Так ведь и не при каждом увеличении процентов квадратик
> добавляется.

Квадратик или сплошная лента зависит от настроек Виндоус. Лучше определить диапазон минимальное-максимальное и вызывать разумное число раз какой-нибудь StepIt() возможно StepIt(n), а там пусть само решает рисовать или только счётчик увеличить. Разумность зависит от конкретной ситуации.


begin...end   (2012-03-18 08:57:00) [4]

> sniknik ©   (17.03.12 22:32) [3]

Так ведь и не при каждом увеличении процентов квадратик добавляется. Поэтому я всё же не высчитывал бы их самостоятельно, а обновлял бы Position как в [2], но не при каждом изменении V (например, если V изменяется в цикле, то можно обновлять Position только если V чётно, или кратно десяти, и т.д.).


sniknik   (2012-03-17 22:32:00) [5]

> И возиться с процентами тут ни к чему
каждое изменение вызывает перерисовку, но не каждое меняет что то в отображаемом... т.е. при больших числах, это жутко тормозит процесс, но ничего не меняет визуально (квадратика не добавляется).

проценты вполне нормальное решение, для минимизации "тормозов". ну или перейти на TGaude.


begin...end   (2012-03-17 08:48:00) [6]

Странно. Если prgProcentVip - это TProgressBar, то должна быть другая ошибка - несовместимость типов. Ибо свойство TProgressBar.Position, насколько я знаю, целочисленное. И возиться с процентами тут ни к чему - достаточно сообщить ProgressBar'у границы изменяющейся величины, а потом передавать ему текущее её значение:

prgProcentVip.Min := 0;
prgProcentVip.Max := Vi;
prgProcentVip.Position := V;


Германн   (2012-03-16 22:25:00) [7]


>  y:=(V)/Vi*100 ;
> frmmain.prgProcentVip.Position:= y;

И в каком же это месте эти строки прописаны?


Наверх

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