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

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

Удаление динамических объектов / полная очистка формы [D6]


Страницы:   1 2

timekiller ©   (2007-10-03 20:48:00) 

Уважаемые, подскажите:

На форме динамически создаются несколько десятков объектов : кнопки, чекбоксы, мемы всякие и проч

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


Джо   (2007-10-07 21:05:00) [1]

>>задаешь им родителя
Владельца.


Джо   (2007-10-07 21:05:00) [2]

Form1 = class (TForm)
...
private
 FOwnerComponent: TComponent;
...
end;

...
procedure TForm1.CreateComponents;
begin
 FOwnerComponent := TComponent.Create (Self);
 // При создании своих контроллов задаешь им родителя
 SomeComponent1 := TSome1.Create (FOwnerComponent);
 SomeComponent2 := TSome2.Create (FOwnerComponent);
 ...
end;

procedure TForm1.DestroyComponents;
begin
 // Вот и всё.
 FOwnerComponent.Free;
end;


Gadenysh   (2007-10-07 20:52:00) [3]

destroycomponents


timekiller   (2007-10-07 13:40:00) [4]

Убейте меня!!!! читаю только самые последние ответы

Всё пшёл тестить ....... Спасибы Спасибы всем!


engine   (2007-10-07 13:38:00) [5]

> [20] timekiller ©   (07.10.07 13:37)

номера ответов в данной ветке.


timekiller   (2007-10-07 13:37:00) [6]

А что такое [4] и [5] ?
Я токо и успеваю делать что слово брякнуть хоть куданибуть и выбигать с форума ....


timekiller   (2007-10-07 13:36:00) [7]

ок ....... спяшу !! уже с прогой вцелом опоздал на неделю по срокам

engine Спасибы ! Коекак заработало ))) потестирю еще


engine   (2007-10-07 13:33:00) [8]

> [17] engine ©   (07.10.07 13:27)

блин, в [4] уже все написано.


engine   (2007-10-07 13:27:00) [9]

for cmpn:= ComponentCount — 1 downto 0 do
…


DVM   (2007-10-07 13:16:00) [10]


> Кстати борюсь с ашыпкай !!! какойто list index out of bounds
> (58), Че с этитм делать ??????????

Тебя ж о ней предупредили в [5]


timekiller   (2007-10-07 13:13:00) [11]

ёёёёё = ))))))))
Я написал здесь ПРИМЕРНО и ВРУЧНУЮ , код не копировал сюда = ))))

А Вот сам код например:

 for cmpn:=0 to MainFRM.ComponentCount-1 do
 begin
   ShowMessage(IntToStr(Components[cmpn].Tag));
   if Components[cmpn].Tag>0 then Components[cmpn].Free;
 end;

Кстати борюсь с ашыпкай !!! какойто list index out of bounds (58), Че с этитм делать ??????????

Тоесть удаляется только половина компонентов динамических с присвоенными тагами ....


Плохиш   (2007-10-06 17:00:00) [12]


> DVM ©   (04.10.07 21:25) [9]
> 48-ой компонент живучий однако оказался.

Ну надо было человеку 5ть компонентов удалить ;-)

> timekiller ©   (04.10.07 21:20) [7]

Откуда номера брал?


Denis_   (2007-10-06 15:15:00) [13]

Написал же ZeroDivide, а потом clickmaker его исправил! Чего ещё надо?


DVM   (2007-10-06 15:10:00) [14]


> я быстро быстро писал в состоянии эйфории = )))))

Так не совсем правильно же написал. Циклы отменили что ли?


Denis_   (2007-10-06 15:09:00) [15]

Мдя. "динамически"! А если 5000 компонентов? 5000 строк? А если 321 компонент будет вообще живучим? Тогда что?


timekiller   (2007-10-06 14:58:00) [16]


> 48-ой компонент живучий однако оказался


я быстро быстро писал в состоянии эйфории = )))))


DVM   (2007-10-04 21:25:00) [17]

48-ой компонент живучий однако оказался.


engine   (2007-10-04 21:23:00) [18]

> [7] timekiller ©   (04.10.07 21:20)

грамотно…


timekiller   (2007-10-04 21:20:00) [19]

ААА а!!
в итоге получилось :

MainFRM.Components[1].Free
MainFRM.Components[14].Free
MainFRM.Components[46].Free
MainFRM.Components[47].Free
MainFRM.Components[48].Free
MainFRM.Components[48].Free
MainFRM.Components[48].Free
MainFRM.Components[48].Free
MainFRM.Components[48].Free
MainFRM.Components[163].Free

Но все равно спасибы = ))


ZeroDivide   (2007-10-04 10:18:00) [20]

>И здравствуй
:)
Да...


Страницы:   1 2

Наверх

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