Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.10.28;
Скачать: [xml.tar.bz2];

Вниз

Удаление динамических объектов / полная очистка формы   Найти похожие ветки 

 
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)

грамотно&#133


 
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
&#133


 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.045 c
2-1190918428
fishka
2007-09-27 22:40
2007.10.28
DBF и Windows 2000 - OK, DBF и Windows XP- ошибка


15-1191662383
Kostafey
2007-10-06 13:19
2007.10.28
Динамическое формирование C-строки с несколькими 0


2-1191689278
Nikfel
2007-10-06 20:47
2007.10.28
Над каким элементом в списке курсор.


2-1191334323
Sergl
2007-10-02 18:12
2007.10.28
Кнопка на форме в процессе выполнения программы


6-1172583520
kernel
2007-02-27 16:38
2007.10.28
SMTP сервер





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский