![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему не удаляется все объекты на форме? [D6, XP]
qwert_leonid © (2007-10-23 16:08:00)Вот код, вернее кусочек.......
for U2 :=0 to ComponentCount - 1 do begin
if (Components[U2] is TEdit) then begin
ShowMessage ('Удалить');
TEdit(Components[U2]).Free; //На каком то этапе неудаляется... хотя если сделать TEdit(Components[U2]).Visible :=false, то абсолютно все компоненты невидны?? end; end;
for i :=0 to List.Count-1 do begin
with TEdit.Create(Self) do
begin
Top :=15 + koordinataXX;
Left :=10;
Caption := 'CCO'+ ' ' +IntToStr (i);
Tag :=0+i;
Parent :=ScrollBox2;
koordinataXX :=koordinataXX + 30;
end;
end;
Как удалить все компоненты которые TEdit?
qwert_leonid (2007-10-23 16:19:00) [1]Palladin
Спасибо.
For i:=ComponentCount-1 Downto 0 Do
If (Components[i] is TEdit) Then Components[i].Free;
А то я запутался совсем
qwert_leonid (2007-10-23 16:16:00) [2]Ega23
Как удалить все компоненты которые TEdit?
А что тут List?
List:=TStringList.Create;
List.LoadFromFile(CurrentDir+'\map\psi'+ IntToStr (TComponent(Sender).Tag));
List.Free;
Anatoly Podgoretsky (2007-10-23 16:15:00) [3]И наверно AV возникает?
Palladin (2007-10-23 16:14:00) [4]так понятное дело... смодулировать ситуацию такого подхода к удалению чего либо из какого либо списка - не судьба...
понимаешь... цикел у тебя до count, но в процессе удаления count сам по себе меняется... соответственно есть некий момент времени когда итерационная переменная выйдет за пределы этого самого реального count....
которые TEdit, да без проблемм
For i:=ComponentCount-1 Downto 0 Do
If (Components[i] is TEdit) Then Components[i].Free;
Ega23 (2007-10-23 16:13:00) [5]
for i :=0 to List.Count-1 do begin
with TEdit.Create(Self) do
begin
Top :=15 + koordinataXX;
Left :=10;
Caption := 'CCO'+ ' ' +IntToStr (i);
Tag :=0+i;
Parent :=ScrollBox2;
koordinataXX :=koordinataXX + 30;
end;
end;
Как удалить все компоненты которые TEdit?
А что тут List?
temp_and_test (2007-10-23 16:13:00) [6]Вот раз удалил, два удалил, три удалил, а четыре - Н Е У Д А Л И Л. С ошибкой вылетает List Index out of bounds (30)
Kolan (2007-10-23 16:12:00) [7]TEdit(Components[U2]).Free;
За чем вообще привобить к TEdit? У TObject есть Free.
вроде все правильно
Офор млятьучись :(
for U2 := 0 to ComponentCount 1 do
begin
if Components[U2] is TEdit then
begin
ShowMessage ('Удалить');
Components[U2].Free; //На каком то этапе неудаляется хотя если сделать TEdit(Components[U2]).Visible :=false, то абсолютно все компоненты невидны??
end;
end;
homm (2007-10-23 16:10:00) [8]> [0] qwert_leonid (23.10.07 16:08)
> TEdit(Components[U2]).Free;
Так не пробовал?
(Components[U2] as TEdit).Free;