这可能是一个愚蠢的问题,但我的大脑已经足够成熟了,我想我将使用我的一条“生命线”来看看我是否可以从我的堆栈溢出朋友那里获得一些帮助。;)
我需要在我的主窗体上删除所有出现的特定组件类型(其中一些在面板或标签页内,但都在同一个窗体上并由同一个窗体拥有)。这是我现在拥有的:
for i := 0 to frmMain.ComponentCount - 1 do
begin
if frmMain.Components[i] is TMyClass then frmMain.Components[i].Destroy;
end;
问题是(我在编译它之前就知道会这样)一旦我销毁组件,表单的组件列表会重新索引,最终会超出范围。
解决这个问题的最佳方法是什么?我考虑过将“找到”的组件添加到一个独立的数组中,然后在这个循环之后通过它来删除它们,我认为这会起作用....但这是最好的方法吗?
TIA
更新:
你们真棒。谢谢。:)