TAChart: Add overloaded Clone method to set a new parent and owner (issue #0032365). Patch by user mig-31.

git-svn-id: trunk@55780 -
This commit is contained in:
wp 2017-09-03 11:33:08 +00:00
parent b1ddbb8f12
commit 84b6be4a64

View File

@ -322,7 +322,8 @@ type
public public
procedure AddSeries(ASeries: TBasicChartSeries); procedure AddSeries(ASeries: TBasicChartSeries);
procedure ClearSeries; procedure ClearSeries;
function Clone: TChart; function Clone: TChart; overload;
function Clone(ANewOwner, ANewParent: TComponent): TChart; overload;
procedure CopyToClipboardBitmap; procedure CopyToClipboardBitmap;
procedure DeleteSeries(ASeries: TBasicChartSeries); procedure DeleteSeries(ASeries: TBasicChartSeries);
procedure DisableRedrawing; procedure DisableRedrawing;
@ -599,6 +600,11 @@ begin
end; end;
function TChart.Clone: TChart; function TChart.Clone: TChart;
begin
Result := Clone(Owner, Parent);
end;
function TChart.Clone(ANewOwner, ANewParent: TComponent): TChart;
var var
ms: TMemoryStream; ms: TMemoryStream;
cloned: TComponent = nil; cloned: TComponent = nil;
@ -608,7 +614,7 @@ begin
WriteComponentToStream(ms, Self); WriteComponentToStream(ms, Self);
ms.Seek(0, soBeginning); ms.Seek(0, soBeginning);
ReadComponentFromBinaryStream( ReadComponentFromBinaryStream(
ms, cloned, @FindComponentClass, Owner, Parent, Owner); ms, cloned, @FindComponentClass, ANewOwner, ANewParent, Owner);
Result := cloned as TChart; Result := cloned as TChart;
finally finally
ms.Free; ms.Free;