Steema Issues Database

Note: This database is for bugs and wishes only. For technical support help, if you are a customer please visit our online forums;
otherwise you can use StackOverflow.
Before using this bug-tracker we recommend a look at this document, Steema Bug Fixing Policy.



Bug 1890 - TSmoothingFunction forces Order and gives a wrong result when XValues go
Summary: TSmoothingFunction forces Order and gives a wrong result when XValues go
Status: RESOLVED FIXED
Alias: None
Product: VCL TeeChart
Classification: Unclassified
Component: Functions (show other bugs)
Version: 21.170329
Hardware: PC Windows
: --- enhancement
Target Milestone: ---
Assignee: Steema Issue Manager
URL: http://www.teechart.net/support/viewt...
Keywords:
Depends on:
Blocks:
 
Reported: 2017-07-11 09:45 EDT by yeray alonso
Modified: 2021-09-13 06:37 EDT (History)
1 user (show)

See Also:
Chart Series: ---
Delphi / C++ Builder RAD IDE Version:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description yeray alonso 2017-07-11 09:45:15 EDT
Having a TLineSeries with XValues going forward and backwards, if you set a TSmoothingFunction to it, the result doesn't use the correct XValues.Order.

See the following example:

uses Series;

var  Series1: TLineSeries;
     Series2: TLineSeries;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Series1:=Chart1.AddSeries(TLineSeries) as TLineSeries;
  Series2:=Chart1.AddSeries(TLineSeries) as TLineSeries;

  Chart1.View3D:=False;

  Chart1.BottomAxis.Logarithmic := true;
  Chart1.BottomAxis.Automatic := false;
  Chart1.BottomAxis.SetMinMax(10, 10000);
  Chart1.LeftAxis.SetMinMax(-6, 6);
  Series1.Pointer.Visible := true;
  Series2.DataSource := Series1;
  Series2.Color := clRed;
  Series1.Clear;
  Series1.AddXY(10,2);
  Series1.AddXY(32,2);
  Series1.AddXY(600,2.5);
  Series1.AddXY(1000,0);
  Series1.AddXY(2000,-2);
  Series1.AddXY(8000,-1.5);
  Series1.AddXY(10000,-1.5);
  Series2.CheckDataSource;
  Series2.Smoothed := true;
end;

The workarounds are:
- To use THorizLineSeries instead of TLineSeries.
- To use this code:

  Series2.XValues.Order:=loNone;
  Series2.HasZValues:=True;