TAChart: Improved painting of dummy designtime curve of TParametricCurveSeries

git-svn-id: trunk@60611 -
This commit is contained in:
wp 2019-03-07 09:38:40 +00:00
parent cf67b5ff36
commit b76c40b65e

View File

@ -98,8 +98,6 @@ type
FParamMin: Double; FParamMin: Double;
FPen: TChartPen; FPen: TChartPen;
FStep: TFuncSeriesStep; FStep: TFuncSeriesStep;
function DoCalcIdentity(AT: Double): TDoublePoint;
function DoCalculate(AT: Double): TDoublePoint; function DoCalculate(AT: Double): TDoublePoint;
function ParamMaxIsStored: Boolean; function ParamMaxIsStored: Boolean;
function ParamMaxStepIsStored: Boolean; function ParamMaxStepIsStored: Boolean;
@ -117,7 +115,6 @@ type
procedure Assign(ASource: TPersistent); override; procedure Assign(ASource: TPersistent); override;
constructor Create(AOwner: TComponent); override; constructor Create(AOwner: TComponent); override;
destructor Destroy; override; destructor Destroy; override;
procedure Draw(ADrawer: IChartDrawer); override; procedure Draw(ADrawer: IChartDrawer); override;
function IsEmpty: Boolean; override; function IsEmpty: Boolean; override;
published published
@ -719,7 +716,6 @@ end;
procedure TFuncSeries.Draw(ADrawer: IChartDrawer); procedure TFuncSeries.Draw(ADrawer: IChartDrawer);
var var
calc: TTransformFunc;
R: TRect; R: TRect;
begin begin
ADrawer.SetBrushParams(bsClear, clTAColor); ADrawer.SetBrushParams(bsClear, clTAColor);
@ -790,38 +786,39 @@ begin
inherited; inherited;
end; end;
function TParametricCurveSeries.DoCalcIdentity(AT: Double): TDoublePoint;
begin
Result := DoublePoint(AT, AT);
end;
function TParametricCurveSeries.DoCalculate(AT: Double): TDoublePoint; function TParametricCurveSeries.DoCalculate(AT: Double): TDoublePoint;
begin begin
OnCalculate(AT, Result.X, Result.Y); OnCalculate(AT, Result.X, Result.Y);
end; end;
procedure TParametricCurveSeries.Draw(ADrawer: IChartDrawer); procedure TParametricCurveSeries.Draw(ADrawer: IChartDrawer);
var
calc: TParametricFunc;
function PointAt(AT: Double): TPoint; function PointAt(AT: Double): TPoint;
begin begin
Result := ParentChart.GraphToImage(AxisToGraph(calc(AT))) Result := ParentChart.GraphToImage(AxisToGraph(DoCalculate(AT)))
end; end;
var var
R: TRect;
t, ts, ms: Double; t, ts, ms: Double;
p, pp: TPoint; p, pp: TPoint;
begin begin
if Assigned(OnCalculate) then
calc := @DoCalculate
else if csDesigning in ComponentState then
calc := @DoCalcIdentity
else
exit;
ADrawer.SetBrushParams(bsClear, clTAColor); ADrawer.SetBrushParams(bsClear, clTAColor);
ADrawer.Pen := Pen; ADrawer.Pen := Pen;
if csDesigning in ComponentState then begin
with ParentChart do begin
R.TopLeft := GraphToImage(LogicalExtent.a);
R.BottomRight := GraphToImage(LogicalExtent.b);
NormalizeRect(R);
end;
ADrawer.Ellipse(R.Left, R.Bottom, R.Right, R.Top);
exit;
end;
if IsEmpty then
exit;
t := ParamMin; t := ParamMin;
pp := PointAt(ParamMin); pp := PointAt(ParamMin);
ADrawer.MoveTo(pp); ADrawer.MoveTo(pp);