如何在FMX中克隆TChart

时间:2019-06-25 02:06:41

标签: firemonkey c++builder teechart

如何在运行时克隆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;
}

Chart1 and its clone

1 个答案:

答案 0 :(得分:1)

可以使用功能TChart克隆CloneChart组件。

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

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