Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
ВнизПоказ точек линии в TEEChart программным способом Найти похожие ветки
← →
Igor Stepanov (2005-06-07 18:23) [0]Уважаемые мастера,
Как программно установить у компонента LineSeries показ точек?
Это легко делается в ChartEditor, но как то же самое сделать программно, из help неясно.
Заранее благодарю,
Игорь Степанов
← →
Ученик (2005-06-07 22:36) [1]>Igor Stepanov (07.06.05 18:23)
Series.Pointer.Visible := True
← →
Igor Stepanov (2005-06-08 09:16) [2]Я объявляю программно ряды типа LineSeries в цикле следующим образом:
For i:=1 to N do begin
QRDBChart1.AddSeries((TLineSeries.Create(self)));
QRDBChart1.Series[i].ParentChart:=QRDBChart1;
QRDBChart1.Series[i].Title:=Testnames[i];
QRDBChart1.Series[i].SeriesColor:=clBlack;
Этот код компилируется нормально. Однако следующаЯ строчка
QRDBChart1.Series[i].Pointer.Visible:=True;
при компиляции вызывает ошибку: "Undeclared identifier: "Pointer"
Если посмотреть в список свойств и методов,
открывающийся при написании кода
QRDBChart1.Series[i].
невозможно найти свойство Pointer. Его нет в списке свойств TLineSeries.
Это странно, так как в Справке сказано, что
TLineSeries derives from TCustomSeries, which adds support for Series Pointers, Marks and click events.
И далее: You can show point shapes by using the Pointer subcomponent property.
Please refer to TCustomSeries ancestor description for all common Series properties like Marks, Axis dependence, methods and events.
Если мы обратимся в справке к TCustomSeries, то у него есть свойство Pointer, которое действительно обладает нужными нам свойствами. Почему же у компонента TLineSeries, который является наследником компонента TCustomSeries, нет свойства Pointer?
Pointer находится в модуле Series, и этот модуль присутствует в списке USES.
В чем моя ошибка?
Игорь Степанов
← →
MBo © (2005-06-08 09:22) [3]TLineSeries(QRDBChart1.Series[i]).Pointer.Visible:=True;
Кроме того, в коде неаккуратно обращаешься со списком серий - подразумевается, что одна серия уже есть, и при создании очередной в цикле идет обращение по жестко заданному индексу - лучше использовать SeriesCount-1
← →
Igor Stepanov (2005-06-08 13:18) [4]Спасибо.
Правильно ли я понял, что выражение TLineSeries(QRDBChart1.Series[i-1]). является приведением типов?
Можно задать следующий вопрос: как сделать так, чтобы точки, определяемые свойством Poiner рисовались бы не по всей кривой, а только в точках меток оси Х? Дело в том, что мне надо на одном графике нарисовать несколько кривых. Для их различения используют разные виды точек, но их не должно быть слишком много. Лучше всего по точке в месте метки на оси Х. Можно ли это сделать?
С уважением, Игорь Степанов
← →
MBo © (2005-06-08 14:18) [5]>Правильно ли я понял, что выражение TLineSeries(QRDBChart1.Series[i-1]). является приведением типов?
Да. QRDBChart1.Series[i] имеет родительский тип, для которого свойства потомков неизвестны.
>определяемые свойством Poiner рисовались бы не по всей кривой
OnGetPointerStyle. Где не нужно - psNothing
← →
Igor Stepanov (2005-06-08 16:37) [6]К сожалению, в справке нет события OnGetPointerStyle. Какие параметры должны быть использованы?
Спасибо за помощь.
Игорь Степанов
← →
Ученик (2005-06-08 22:21) [7]>Igor Stepanov (08.06.05 16:37) [6]
TSeriesPointerStyle=( psRectangle,psCircle,psTriangle,psDownTriangle,
psCross,psDiagCross,psStar,psDiamond,psSmallDot,
psNothing,psLeftTriangle,psRightTriangle );
TOnGetPointerStyle=Function( Sender:TChartSeries;
ValueIndex:Integer):TSeriesPointerStyle of object;
← →
Igor Stepanov (2005-06-09 18:40) [8]К сожалению, отсутствие внятной документации по применению TOnGetPointerStyle привело меня к решению о том, что мне гораздо проще самому нарисовать маркеры на кривых для их идентификации. Я это уже программировал на Паскале под DOS, так что теперь все это можно сделать и под Windows.
Таким образом, для себя я проблему закрыл.
Большое спасибо всем за помощь и советы.
С уважением и наилучшими пожеланиями,
Игорь Степанов
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.043 c