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



我不知道如何删除TChart. 这必须很简单,但我没有看到它。 在下面的 TListViewButtonClick代码中,我从活动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 Update 1(工作。

更新:我尝试用delete TC;代替该TC->CleanupInstance();,它适用于 Win32,但不适用于 iOS。

好的,根据 Remy 在这个问题中提供的解决方案,我现在可以工作了。 我只是用一行替换了TC->CleanupInstance();,以设置一个等于组件索引的整数,delINT = i. 然后在循环访问组件的循环下方,我放置了以下简单代码:

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

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

相关内容

  • 没有找到相关文章

最新更新