From 1a6aea0daa948842c6f73f649611044163abea57 Mon Sep 17 00:00:00 2001 From: wp_xyz Date: Sun, 8 May 2022 16:02:04 +0200 Subject: [PATCH] TAChart: Fix designtime crash when Chart is unlinked from ChartLiveView; add missing Notification method. --- components/tachart/tachartliveview.pas | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/components/tachart/tachartliveview.pas b/components/tachart/tachartliveview.pas index df4fdc3c11..d0ecd4eb0e 100644 --- a/components/tachart/tachartliveview.pas +++ b/components/tachart/tachartliveview.pas @@ -53,6 +53,7 @@ type procedure SetExtentY(const AValue: TChartLiveViewExtentY); procedure SetViewportSize(const AValue: Double); protected + procedure Notification(AComponent: TComponent; AOperation: TOperation); override; procedure UpdateViewport; virtual; public constructor Create(AOwner: TComponent); override; @@ -98,6 +99,16 @@ begin UpdateViewport; end; +procedure TChartLiveView.Notification(AComponent: TComponent; AOperation: TOperation); +begin + if (AOperation = opRemove) and (AComponent = FChart) then + begin + SetActive(false); + FChart := nil; + end; + inherited Notification(AComponent, AOperation); +end; + procedure TChartLiveView.RestoreAxisRange(Axis: TChartAxis); begin if Assigned(Axis) then @@ -195,6 +206,8 @@ procedure TChartLiveView.StoreAxisRanges; var i: Integer; begin + if FChart = nil then + exit; SetLength(FAxisRanges, FChart.AxisList.Count); for i := 0 to FChart.AxisList.Count-1 do StoreAxisRange(FChart.AxisList[i]);