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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2007, 15:46   #1
Борис2
Пользователь
 
Регистрация: 08.09.2007
Сообщений: 21
По умолчанию Как представить в виде цикла?

Как представить следующий фрагмент программы:
“for i:=1 to N do Series1.AddXY(X[i],Y[1,i]);
for i:=1 to N do Series2.AddXY(X[i],Y[2,i]);

for i:=1 to N do Series20.AddXY(X[i],Y[20,i]);”
в виде цикла (for j:=1 to 20 do Begin End) для:
“for i:=1 to N do Seriesj.AddXY(X[i],Y[j,i])”?
Борис2 вне форума Ответить с цитированием
Старый 18.09.2007, 15:56   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну может так:

for i:=0 to 19 do chart1.series[i].AddXY(X[i],Y[i,i]);

P.S. по памяти.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.09.2007, 08:33   #3
Борис2
Пользователь
 
Регистрация: 08.09.2007
Сообщений: 21
По умолчанию

Stilet. Но ведь Series не является элементом массива.

Последний раз редактировалось Борис2; 20.09.2007 в 08:40.
Борис2 вне форума Ответить с цитированием
Старый 20.09.2007, 08:59   #4
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Stilet, лучше так:
for i:=1 to 20 do chart1.series[i-1].AddXY(X[i],Y[i,i]);

Борис2: вот в хелпе пишут:
Цитата:
property Series[Index:Longint]:TChartSeries

Последний раз редактировалось Alex21; 20.09.2007 в 09:03.
Alex21 вне форума Ответить с цитированием
Старый 20.09.2007, 09:32   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
Подмигивание

Цитата:
Сообщение от Борис2 Посмотреть сообщение
Stilet. Но ведь Series не является элементом массива.
Это еслиты их программно создавал и забыл привязать, а если в дизайне, то еще как являются
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.09.2007, 21:09   #6
Борис2
Пользователь
 
Регистрация: 08.09.2007
Сообщений: 21
По умолчанию

(После паузы). Уважаемый Stilet. Записал по Вашему (и Alex21) совету выражение:
for i:=1 to 20 do chart1.series[i-1].AddXY(X[i],Y[i,i]);
и получил в результате следующее сообщение: “Undeclared identifier: Series”.
Series я создавал в Сhart.SeriesList. Понимаю, что что-то не “привязал” или не описал. Но вот что? И как? Догадываюсь, что “series” описывают как массив. Но мне этого сделать не удалось. Читал help: “property Series[Index:Longint]:TChartSeries” и это тоже не помогло. Как правильно описывать массив series там не сказано.
Подскажите, как быть.

Последний раз редактировалось Борис2; 28.09.2007 в 21:23.
Борис2 вне форума Ответить с цитированием
Старый 29.09.2007, 22:39   #7
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Цитата:
Как правильно описывать массив series там не сказано.
Он описывается автоматом.

Покажите ваш код - посмотрим...
Alex21 вне форума Ответить с цитированием
Старый 30.09.2007, 10:13   #8
Борис2
Пользователь
 
Регистрация: 08.09.2007
Сообщений: 21
По умолчанию

Привожу фрагменты кода.
1.Описания, созданные Delphi:
Interface
uses
type
chGrSemia: TChart;
sGraf1: TFastLineSeries;
sGraf2: TFastLineSeries;

sGraf30: TFastLineSeries;

2. Все “sGraf1: TFastLineSeries;” я убрал и вместо них в разделе
“implementation” записал:
sGraf: array[1..30] of TFastLineSeries;

3.Фрагмент программы:
for j:=1 to 30 do for i:=1 to 20 do chGrSemia.sGraf[j].AddXY(X[i],Y[j,i]);

4.В результате получил: “Undeclared identifier: sGraf”
Борис2 вне форума Ответить с цитированием
Старый 30.09.2007, 12:12   #9
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Делфи должна была создать описание:
Цитата:
chGrSemia: TChart;
Series1: TFastLineSeries;
...
Series30: TFastLineSeries;
Массив объявлять не надо, т.к. он объявлен в структуре компонента.

Обращение будет таким:
Цитата:
for i:=1 to 20 do chart1.series[i-1].AddXY(X[i],Y[i,i]);
Не понятно происхождение ваших "sGraf" - может это свойство Title?.
Но можете проделать тоже самое из вашего 8-го поста, кроме пункта 2 - без массива.
Alex21 вне форума Ответить с цитированием
Старый 30.09.2007, 14:38   #10
Борис2
Пользователь
 
Регистрация: 08.09.2007
Сообщений: 21
По умолчанию

Уважаемый Alex21 признателен Вам за подсказку. Всё получилось.
Работа над ошибками.
1.sGraf – это свойство “Name” видимо(?) для seriesTitle. Когда я создавал компоненты series, я им в Properties присваивал имена – “sGraf”. После этого присвоения я подумал, что у меня уже нет “series”, а есть “sGraf”.
2.Получается, что именем “sGraf” при обращении к массиву пользоваться нельзя, а “series” - можно?
3.Между тем, при компиляции программы запись в разделе implementation:
sGraf: array[1..30] of TFastLineSeries; не вызвала возражений у Delphi, а вот запись:
for j:=1 to 30 do for i:=1 to 20 do chGrSemia.sGraf[j].AddXY(X[i],Y[j,i]); - ему не понравилась. Delphi почему-то не понял, что такое “sGraf” (?).
Борис2 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Представить как глюк винды Иллидан Безопасность, Шифрование 7 29.04.2008 16:36
Необходимо представить десятичное число в двоичном виде Xardas Паскаль, Turbo Pascal, PascalABC.NET 2 26.01.2008 00:54
Представить данные о студентах института в виде массива записей. Паскаль. menlo Помощь студентам 3 12.12.2007 20:40
Оператор цикла с предусловием While. Оператор цикла с пост условием Repeat McMilin Помощь студентам 7 11.11.2007 14:10