Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.18;
Скачать: CL | DM;

Вниз

Как удалить все эдиты на форме?   Найти похожие ветки 

 
Гуест   (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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.046 c
1-1147443885
parovoZZ
2006-05-12 18:24
2006.06.18
Результат функции по событию в dll


1-1147330802
bva
2006-05-11 11:00
2006.06.18
MSWord в Delphi


4-1143037786
Arazel
2006-03-22 17:29
2006.06.18
ListBox под WinApi это не проблема! А вот со скинами это слабо!


15-1148396545
Andy BitOff
2006-05-23 19:02
2006.06.18
... заповеди пролетариата.


2-1149200694
[stalker]
2006-06-02 02:24
2006.06.18
Проблемма с динамическим массивом