Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подскажите как очистить GroupBox от визуальных компонентов ?


Kostafey ©   (2007-04-26 02:29:00) 

Если создан 1 компонет, то все работает:

     with TLabel.Create(FormOtchetList) do
     begin
       Parent := GroupBoxParams;
       Caption := 'Familiya';
       Left := 16;
       Top := 16;
     end;
...
 for i := 0 to GroupBoxParams.ControlCount - 1 do
 begin
   GroupBoxParams.Controls[i].Free;
 end;

Если уже 2, то вылетает с сообщением 'List index out of bounds (22)':

     with TLabel.Create(FormOtchetList) do
     begin
       Parent := GroupBoxParams;
       Caption := 'Familiya';
       Left := 16;
       Top := 16;
     end;
     with TEdit.Create(FormOtchetList) do
     begin
       Parent := GroupBoxParams;
       Left := 96;
       Top := 16;
     end;
...
 for i := 0 to GroupBoxParams.ControlCount - 1 do
 begin
   GroupBoxParams.Controls[i].Free;
 end;

Пробовал так - тоже бесполезно:

 for i := 0 to ComponentCount - 1 do
 begin
   if (Components[i] is TControl) then if (Components[i] as TControl).Parent=GroupBoxParams
   then Components[i].Free;
 end;


Kostafey   (2007-04-26 21:49:00) [1]

> for I := Count-1 downto 0 do

Ну конечно, удалив компонент, происходит переиндексация оставшихся.
Спасибо !


Джо   (2007-04-26 02:32:00) [2]

for I := Count-1 downto 0 do


Наверх

Титульная страница Поиск, карта сайта Написать письмо