Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2008, 23:35   #1
prog1
 
Регистрация: 29.05.2008
Сообщений: 4
Восклицание Помогите записать в цикл

Код:
procedure TForm1.Button2Click(Sender: TObject);
var obprod,chak,oborakzap,crob,sebpr,srzap,debzad,prodkr,kredzad,zakkr,chp,valpr,densumm,vnakzap,pokkr :integer;
begin
randomize;
trackbar1.position := 1;

 chp := random(50000)+1;
 chak := random(50000)+1;
 crob := random(50000)+1;
 obprod := random(50000)+1;
 vnakzap := random(50000)+1;
 oborakzap := random(50000)+1;
 sebpr := random(50000)+1;
 srzap := random(50000)+1;
 debzad := random(50000)+1;
 kredzad := random(50000)+1;
 prodkr := random(50000)+1;
 zakkr := random(50000)+1;
 valpr := random(50000)+1;
 densumm := random(50000)+1;

 pagecontrol1.ActivePageIndex := 1;

stringgrid1.Cells[trackbar1.Position,1] := ''+floattostr(obprod / chak);
de[trackbar1.Position,1] := obprod div chak;

stringgrid1.Cells[trackbar1.Position,2] := ''+floattostr(oborakzap / crob);
de[trackbar1.Position,2] := oborakzap div crob;

stringgrid1.Cells[trackbar1.Position,3] := ''+floattostr(sebpr / srzap);
de[trackbar1.Position,3] := sebpr div srzap;

stringgrid1.Cells[trackbar1.Position,4] := ''+floattostr(debzad / prodkr * 365);
de[trackbar1.Position,4] := debzad div prodkr * 365;

stringgrid1.Cells[trackbar1.Position,5] := ''+floattostr(kredzad / zakkr);
de[trackbar1.Position,5] := kredzad div zakkr;

stringgrid1.Cells[trackbar1.Position,6] := ''+floattostr(chp / obprod * 100);
de[trackbar1.Position,6] := chp div obprod * 100;

stringgrid1.Cells[trackbar1.Position,7] := ''+floattostr(valpr / obprod * 100);
de[trackbar1.Position,7] := valpr div obprod * 100;

stringgrid1.Cells[trackbar1.Position,8] := ''+floattostr(valpr / sebpr * 100);
de[trackbar1.Position,8] := valpr div sebpr * 100;

stringgrid1.Cells[trackbar1.Position,9] := ''+floattostr(densumm / obprod * 100);
de[trackbar1.Position,9] := densumm div obprod * 100;

stringgrid1.Cells[trackbar1.Position,10] := ''+floattostr((chak / chp) * 100);
de[trackbar1.Position,10] := (chp div chak) * 100;

trackbar1.Position := trackbar1.Position + 1;
вот есть несколько значений, они заполняются рандомом. Затем в стрингрид высчитываются сразу значения. Но как видно, они высчитываются только для первого столбца таблицы. Есть трэкбар, на нем 6 делений, то бишь 6 столбцов в таблице. По нажатию кнопку, столбцы должно разом заполняться, а так получается что заполнять приходится, нажимая 6 раз подряд кнопку.
Как записать это дело в цикл ? Али еще как можно ?
prog1 вне форума Ответить с цитированием
Старый 10.06.2008, 00:09   #2
Iceman
Форумчанин
 
Регистрация: 08.07.2007
Сообщений: 154
По умолчанию

после randomize; поставь for trackbar1.position:=1 to 6 do begin .. end;
и не присваевай тракбару каждый раз при начяле 1.

другой вариант мог бы придумать но ты както тут странно замутил.
Iceman вне форума Ответить с цитированием
Старый 10.06.2008, 00:52   #3
prog1
 
Регистрация: 29.05.2008
Сообщений: 4
Злость

увы, но тогда код не компилиться.
Код:
for trackbar1.position := 1 to 6 do
например, на эту строку получаю такое
Цитата:
[Error] Unit1.pas(148): For loop control variable must be simple local variable
чего оно от меня хочет ?
prog1 вне форума Ответить с цитированием
Старый 10.06.2008, 01:22   #4
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Что пишет того и хочет... вы указыватье trackbar1.position - свойство, а не переменная... он просит переменну т.е. типа var i: Integer; а потом в теле цикла trackbar1.position := i;
BOBAH13 вне форума Ответить с цитированием
Старый 10.06.2008, 20:36   #5
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
чего оно от меня хочет ?
[Error] Unit1.pas(148): For loop control variable must be simple local variable
[Ошибка] модуль Unit1.pas(строка 148): Счетчик цикла for должен быть простой локальной переменной.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 11.06.2008, 18:17   #6
prog1
 
Регистрация: 29.05.2008
Сообщений: 4
По умолчанию

Блин, наверно криворукость сказывается, но код не хочет компилиться. Если ввожу еще одну переменную, все последующие строки вдруг стали ошибочными
и с трэкбаром тоже чушь какая-то.
prog1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите! Как записать DVD из приложения VS (C#) gennadiyk Общие вопросы .NET 1 04.08.2008 13:10
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34
3-ой цикл LeoN Общие вопросы Delphi 5 12.06.2007 14:15