Это, вероятно, глупый вопрос, но мой мозг просто достаточно подготовлен, я думаю, что я собираюсь использовать одну из моих «линий жизни», чтобы посмотреть, смогу ли я получить некоторую помощь от моих друзей переполнения стека. ;)
Мне нужно удалить все вхождения определенного типа компонента в моей главной форме (некоторые из них находятся внутри панелей или вкладок, но все они принадлежат одной форме). Вот что у меня сейчас:
for i := 0 to frmMain.ComponentCount - 1 do
begin
if frmMain.Components[i] is TMyClass then frmMain.Components[i].Destroy;
end;
Проблема в том (и я знал, что это произойдет до того, как я скомпилировал его), что после того, как я уничтожу компонент, список компонентов формы переиндексируется, и я получаю выход за пределы.
Какой лучший способ решить эту проблему? Я думал о добавлении «найденных» компонентов в автономный массив, а затем прошёл через это после этого цикла, чтобы удалить их, что, я думаю, сработает… но разве это лучший подход?
1010 * ТИА *
ОБНОВЛЕНИЕ:
Ребята, вы молодцы. Благодарю. :)