如何删除 TChart (FMX, C++)

How to delete TChart (FMX, C++)

我不知道如何删除 TChart。这必须很简单,但我没有看到。在下面的 TListView ButtonClick 代码中,我从活动 TChart 中删除了一个系列,如果该系列恰好是最后一个,那么我想删除整个 TChart.

TComponent *T;                     // find chart and delete the selected series
for (int i = 0; i < (Form1->ComponentCount); i++) {
   T = Form1->Components[i];
   if (T->ClassName() == "TChart") {
      int test = T->Tag;
      if (test == TappedChartTag) { //TappedChartTag is global
        if (TChart *TC = dynamic_cast<TChart *>(T)) {
            TC->RemoveSeries(AItem->Index); // this removes the series
            if (TC->SeriesCount()==0) {  // if this was last series, delete chart
               TC->CleanupInstance();
            }
        }
      }
    }
}

我找不到完全摆脱 TChart 的方法。 TC->CleanupInstance(); 将其完全擦除(看不到),但 TChart 仍然存在。

我在 Embarcadero Rad Studio(C++ Builder 10.3 更新 1)中工作。

UPDATE:我尝试用 delete TC; 代替 TC->CleanupInstance(); 并且它适用于 Win32 但不适用于 iOS.

好的,基于 Remy 提供的解决方案 我现在已经可以使用了。我只是将 TC->CleanupInstance(); 替换为一行以设置等于组件索引 delINT = i 的整数。然后在遍历组件的循环下面我放了这个简单的代码:

if (delINT > 0) {
  Form1->Components[delINT]->DisposeOf();
}

我让事情变得比应该的更难。我无法在之前的代码中调用 DisposeOf(),因为它脱离了上下文。在这种情况下,它工作正常(在 Win32、iOS 和 Android 上)。