Текущий архив: 2007.10.28;
Скачать: CL | DM;
ВнизУдаление динамических объектов / полная очистка формы Найти похожие ветки
← →
timekiller © (2007-10-03 20:48) [0]Уважаемые, подскажите:
На форме динамически создаются несколько десятков объектов : кнопки, чекбоксы, мемы всякие и проч
Как этот весь хлам динамически удалить сразу с формы весь одной кнопой??
← →
b z (2007-10-03 21:07) [1]как вариант - "убить" общего влядельца (owner), если такой имеется
← →
Германн © (2007-10-04 01:24) [2]
> Как этот весь хлам динамически удалить сразу с формы весь
> одной кнопой??
А зачем вообще было создавать "хлам"?
← →
ZeroDivide © (2007-10-04 10:08) [3]for n := 0 to YourForm.ComponentCount -1 do
YourForm.Components[n].Free;
← →
clickmaker © (2007-10-04 10:12) [4]
> [3] ZeroDivide © (04.10.07 10:08)
> for n := 0 to YourForm.ComponentCount -1 do
> YourForm.Components[n].Free;
for n := YourForm.ComponentCount -1 downto 0 do
← →
Юрий Зотов © (2007-10-04 10:13) [5]> ZeroDivide © (04.10.07 10:08) [3]
И здравствуй, ошибка выхода за границы массива.
← →
ZeroDivide © (2007-10-04 10:18) [6]>И здравствуй
:)
Да...
← →
timekiller © (2007-10-04 21:20) [7]ААА а!!
в итоге получилось :
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
Но все равно спасибы = ))
← →
engine © (2007-10-04 21:23) [8]> [7] timekiller © (04.10.07 21:20)
грамотно…
← →
DVM © (2007-10-04 21:25) [9]48-ой компонент живучий однако оказался.
← →
timekiller © (2007-10-06 14:58) [10]
> 48-ой компонент живучий однако оказался
я быстро быстро писал в состоянии эйфории = )))))
← →
Denis_ © (2007-10-06 15:09) [11]Мдя. "динамически"! А если 5000 компонентов? 5000 строк? А если 321 компонент будет вообще живучим? Тогда что?
← →
DVM © (2007-10-06 15:10) [12]
> я быстро быстро писал в состоянии эйфории = )))))
Так не совсем правильно же написал. Циклы отменили что ли?
← →
Denis_ © (2007-10-06 15:15) [13]Написал же ZeroDivide, а потом clickmaker его исправил! Чего ещё надо?
← →
Плохиш © (2007-10-06 17:00) [14]
> DVM © (04.10.07 21:25) [9]
> 48-ой компонент живучий однако оказался.
Ну надо было человеку 5ть компонентов удалить ;-)
> timekiller © (04.10.07 21:20) [7]
Откуда номера брал?
← →
timekiller © (2007-10-07 13:13) [15]ёёёёё = ))))))))
Я написал здесь ПРИМЕРНО и ВРУЧНУЮ , код не копировал сюда = ))))
А Вот сам код например:
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), Че с этитм делать ??????????
Тоесть удаляется только половина компонентов динамических с присвоенными тагами ....
← →
DVM © (2007-10-07 13:16) [16]
> Кстати борюсь с ашыпкай !!! какойто list index out of bounds
> (58), Че с этитм делать ??????????
Тебя ж о ней предупредили в [5]
← →
engine © (2007-10-07 13:27) [17]
for cmpn:= ComponentCount — 1 downto 0 do
…
← →
engine © (2007-10-07 13:33) [18]> [17] engine © (07.10.07 13:27)
блин, в [4] уже все написано.
← →
timekiller © (2007-10-07 13:36) [19]ок ....... спяшу !! уже с прогой вцелом опоздал на неделю по срокам
engine Спасибы ! Коекак заработало ))) потестирю еще
← →
timekiller © (2007-10-07 13:37) [20]А что такое [4] и [5] ?
Я токо и успеваю делать что слово брякнуть хоть куданибуть и выбигать с форума ....
← →
engine © (2007-10-07 13:38) [21]> [20] timekiller © (07.10.07 13:37)
номера ответов в данной ветке.
← →
timekiller © (2007-10-07 13:40) [22]Убейте меня!!!! читаю только самые последние ответы
Всё пшёл тестить ....... Спасибы Спасибы всем!
← →
Gadenysh (2007-10-07 20:52) [23]destroycomponents
← →
Джо © (2007-10-07 21:05) [24]
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;
← →
Джо © (2007-10-07 21:05) [25]>>задаешь им родителя
Владельца.
Страницы: 1 вся ветка
Текущий архив: 2007.10.28;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.05 c