Рис. 7.47

Окно выбора серии, описываемой функцией

7.9 Использование функций при формировании серий

Введение серии, описанной функцией, приводит к появлению в проекте объекта одного из классов, наследующих TTeeFunction. Эти объекты вы можете увидеть в описании класса формы вашего проекта. Их имена по умолчанию - TeeFun-ctionl, TeeFunction2 и т.д. Задать свойства этих объектов вы можете во время проектирования или на закладке DataSource страницы Series, как было описано выше, или в Инспекторе Объектов. В последнем случае вам надо найти в выпадающем списке вверху окна Инспектора Объектов интересующий вас объект функции, после чего вы сможете увидеть и изменить его свойства.

Объекты функций можно создавать также во время выполнения, пользуясь функцией SetFunction. Например, код

Series2 . DataSource := Seriesl;
Series2.SetFunction(TAverageTeeFunction.Create(Self) ) ;

указывает своим первым оператором, что источником данных (DataSource) для серии Series2 является серия Seriesl, а затем создает в серии Series2 объект, вычисляющий среднее значение. В результате наряду с графиком серии Seriesl пользователь увидит прямую, соответствующую среднему значению графика.

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

Программный доступ во время выполнения к свойствам объектов функций вы можете получить или через сами эти объекты, или через свойство серий Func-tionType.

Основные свойства объектов функций: Period, Period Align, Periods tyle.

Свойство Period задает, после скольких новых точек в серии-аргументе будет подсчитано значение серии-функции. Если Period = 0, то функция подсчитывает -ся по всем точкам серии-аргумента. Например, если функция рассчитывает среднее значение (класс TAverageTeeFunction), то при Period = 0 будет рисоваться горизонтальная прямая, соответствующая среднему значению всех точек серии-аргумента. Если задать Period = 2, то будет рисоваться кривая, отображающая среднее значение каждых двух точек серии-аргумента. Если задать Period = 1, то кривая просто совпадет с кривой серии-аргумента, поскольку среднее значение одной точки равно значению в этой точке.

Все сказанное справедливо, только если свойство PeriodStyle равно psNum-Points. Если же PeriodStyle = psRange, то смысл значения свойства Period меняется: значение определяет диапазон значений аргумента, в котором вычисляется очередное значение.

При Period > 0 на стиль отображения значений функции влияет свойство PeriodAlign. Оно определяет, будет ли посчитанная точка отображаться в середине заданного диапазона (paCenter - значение по умолчанию), в его начале (paFirst), или в конце (paLast).

Во время проектирования значения Period, PeriodStyle и PeriodAlign можно задать с помощью Редактора Диаграмм на закладке DataSource страницы Series, или в Инспекторе Объектов. В последнем случае вам надо найти в выпадающем списке вверху окна Инспектора Объектов интересующий вас объект функции, после чего вы сможете увидеть и изменить его свойства.

Во время выполнения изменять значение этих свойств можно или через объект функции: например, TeeFunctionl.PeriodStyle := psNumPoints;
TeeFunctionl.Period := 2;
TeeFunctionl.PeriodAlign := paFirst;
или через свойство серии FunctionType, например, Series2.FunctionType.PeriodStyle := psNumPoints;
Series2.FunctionType.Period := 2;
Series2.FunctionType.PeriodAlign := paFirst;

В данном и последующих разделах мы рассмотрим форму, использованную в описанном в гл. 3, в разд. 3.7 приложении графического калькулятора произвольных арифметических выражений. На ее примере вы увидите практическое

7.8 Отображение баз данных - компонент DBChart || Оглавление || 7.10 Пример построения и анализа графиков


⇐ Предыдущая страница|

Приемы программирования в Delphi на основе VCL



Новости за месяц

  • Май
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс