如何在 FMX 中克隆 TChart

How clone TChart in FMX

如何在运行时克隆 TChart?我发现 this link 但它是 Delphi 并且我无法转换为 C++ Builder。

这是我尝试过的方法,但在 Class TChart not found:

的运行时出现错误
TChart *tmp = new TChart(Chart1->Clone(this));
tmp->Parent = this->Panel2;

此外,我如何克隆才能轻松地在代码中引用新的克隆 - 例如Chart(2)Chart(3)

编辑 1:我可以使用以下代码克隆一个按钮,但是当我尝试使用 TChart 时我仍然得到 Class TChart not found

TButton *tmp;
tmp = new TButton(Button1->Clone(this));
tmp->Parent=ToolBar1;  // put it on ToolBar1
tmp->Text = "Cloned Button";

编辑 2:以下代码制作图表克隆并解决了 Class TChart not found 问题,但它没有制作真正的克隆。下图显示了 Chart1 和生成的克隆(在 Win32 上)。我的目标是制作一个模板图表 (Chart1),然后在我需要新图表时将其克隆...无需设置大量属性以使其看起来像 Chart1。

void __fastcall TForm1::Button2Click(TObject *Sender)
{
RegisterClass(__classid(TChart));   
TChart* tmp =  (TChart*)(Chart1->Clone(Chart1));  // clone Chart1
tmp->Parent = Panel2;  // put the new clone on Panel2
tmp->Position->Y = 300;  
tmp->BottomAxis->Minimum = -8;
tmp->BottomAxis->Maximum = 8;
tmp->LeftAxis->Minimum = 0;
tmp->LeftAxis->Maximum = 10;
}

可以使用函数 CloneChart.

克隆 TChart 组件
TChart* tmp = new TChart(this);
CloneChart(tmp, Chart1, this, false);
tmp->Parent = this->Panel2;

您可以将指向创建的 TChart 对象的指针保存在向量中。