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

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

Как обратиться к чарту по номеру? [D7, XP]


cvg ©   (2007-09-25 16:39:00) 

Hi мастера, проблема такая:

Программа рисует некие графики на двух чартах. На примере одного из чартов Я написал и отладил некую функцию, которая должна выполнять абсолютно одинаковые действия для графиков первого и второго чартов. Знаю, что к графику в пределах чарта можно обратиться по номеру, например: Chart1.Series[n].Count или Chart1.SeriesList[n].Count. А как по номеру обратиться к чарту?


Kolan   (2007-09-26 09:40:00) [1]

> У слова series формы ед. и мн. числа совпадают. Как и у
> слова species, например :)


Блин, а я думаю чегой-то они их так называют(вл мн. числе). А посмотреть не догодался… Благодарю.


Zeqfreed   (2007-09-26 09:31:00) [2]

> Kolan ©   (26.09.07 09:21) [13]

У слова series формы ед. и мн. числа совпадают. Как и у слова species, например :)


Kolan   (2007-09-26 09:21:00) [3]

> Ну, пока что мне хотелось бы знать, какой точно тип  у SeriesN

Посмотри в справке про is

> Неапример, если переменная S этого типа, то пройдет ли S.AddXY(…)
> ?

if Serie1 is TineSeries then
 {Подойдет.}


Kolan   (2007-09-26 09:21:00) [4]


> TineSeries

TLineSerie


cvg   (2007-09-26 09:20:00) [5]

2 Elen

Ну, можно, конечно... Только в данный момент мне уже гораздо больше хочется узнать тип у Series и реализуемость S.AddXY(...).


Elen   (2007-09-26 08:47:00) [6]


> cvg

А что мешает сделать массив типа TChart?


cvg   (2007-09-26 07:40:00) [7]

Ну, пока что мне хотелось бы знать, какой точно тип  у SeriesN (N - число) и можно ли будет его использовать, подставляя вместо SeriesN. Неапример, если переменная S этого типа, то пройдет ли S.AddXY(...)?


Kolan   (2007-09-25 18:16:00) [8]

> TSerie

В Delphi 7 точно есть. TSerie s, кстати… я же пишу пример, сделать из него рабочий ког — ваша задача.


> Знать бы еще, какой

А какие нужно. Сформулируйте четко задачу…

Например, «нарисовать на все что лежат на форме…»


cvg   (2007-09-25 17:57:00) [9]

2 Kolan

Знать бы еще, какой... Кстати. в хелпе про тип TSerie тоже ничего нет.


Kolan   (2007-09-25 17:49:00) [10]

> Мдя, а тип TSeries отсутствует в этом языке :(

Подключи нужный модуль.

Подразумевается, что Series могут быть из обоих чартов!
Да из каких угодно.

Функция будет где-то такая:
TDoubleArray = array of Double;
function DrawSmth(Serie: TSerie; Arr: TDoubleArray);
begin
 if Assigned(Serie) then
   for I := Low(Arr) to High(Arr) do
     Serie.AddY(Arr[I]);
end;


cvg   (2007-09-25 17:44:00) [11]

Мдя, а тип TSeries отсутствует в этом языке :(


cvg   (2007-09-25 17:37:00) [12]

Подразумевается, что Series могут быть из обоих чартов!


cvg   (2007-09-25 17:35:00) [13]

2 Kolan

Тогда мне бы хотелось (поближе к реальности) что-то вроде:

function DO_IT(S:TSeries,<blah-blah-blah>):integer;
begin
 for i := S.Count - 1 downto 0 do

<blah-blah-blah>

end;

...

DO_IT(Series11,.....);


Интересно, получится ли так...


Lacmus   (2007-09-25 16:49:00) [14]

Chart1, Chart2 ?


Kolan   (2007-09-25 16:49:00) [15]

Варианта два(я предлогаю).

Плохой — зато точнее отвечает на вой вопрос.
Найти чарт(и любой другой компонент) можно используя Components[I], ComponentCount

Выриант 2. Лучьше:

Сделай функцию:

Draw(Serie: TSeries; );

И подставляй в неё любые серии любых чартов. В данном случае:

for I := 0 to Chart1.SeriesCount — 1 do
begin
 Draw(Chart1.Series[I], …);  
 Draw(Chart2.Series[I], …);
end


ЗЫ
 Ессно в справку я не глядел, SeriesCount придумал, но идея надеюсь ясна…


Наверх

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