![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как обратиться к чарту по номеру? [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 придумал, но идея надеюсь ясна