Форум: "Начинающим";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];
ВнизКак удалить все эдиты на форме? Найти похожие ветки
← →
Гуест (2006-05-29 16:40) [0]Как удалить все эдиты на форме?
пытался сделать так:
for i:=0 to MainForm.ComponentCount-1 do
begin
if MainForm.Components[i] is TEdit then
(MainForm.Components[i] as TRadioButton).Destroy;
end;
но т.к. ComponentCount уменшаеться после того как я удалил Едит, то в конце цикла вылетает ошибка..
подскажите плз :)
← →
Desdechado © (2006-05-29 16:45) [1]> if MainForm.Components[i] is TEdit then
> (MainForm.Components[i] as TRadioButton)
интересный подход
> ComponentCount уменшаеться после того как я удалил Едит, то в конце
> цикла вылетает ошибка
нет, конец цикла вычисляется заранее
и вызывать нужно Free
← →
umbra © (2006-05-29 16:46) [2]
for i:=MainForm.ComponentCount-1 downto 0 do
begin
{......................................}
end;
← →
Гуест (2006-05-29 16:48) [3]
> (MainForm.Components[i] as TRadioButton)
тьфу, то я из разных кусков копировал :)
2umbra спасибо!
← →
Ega23 © (2006-05-29 16:51) [4]
> но т.к. ComponentCount уменшаеться после того как я удалил
> Едит, то в конце цикла вылетает ошибка..
Тут ещё один момент тонкий есть: ты нарвёшься на AV при вызове деструктора главной формы. Потому что он попытается сделать
for i:=ComponentCount-1 downto 0 do TObject(Components[i]).Free;
← →
Чапаев © (2006-05-29 16:59) [5]
> > но т.к. ComponentCount уменшаеться после того как я удалил
> > Едит, то в конце цикла вылетает ошибка..
> Тут ещё один момент тонкий есть: ты нарвёшься на AV при
> вызове деструктора главной формы.
Не нарвётся.
Автор, делай цикл не for...to, а for...downto.
PS. Как невовремя тему переместили... Отправляю ответ -- мне: обсуждение закрыто.
← →
Юрий Зотов © (2006-05-30 17:13) [6]> Ega23 © (29.05.06 16:51) [4]
Не нарвется. При уничтожении компонента тот оповестит об этом своего владельца, а владелец удалит ссылку на уничтожаемый компонент из своего списка. Поэтому при уничтожении самого владельца битых ссылок в этом списке не будет.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.014 c