![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как убить все объекты одним ударом [D7, WinXP]
redlord © (2004-09-10 15:16:00)всем привет
народ подскажите как убить все обекты если не известно сколько
их живо на момент удаления
ниже приведен код создания обектов :
type
Tscan = class(tobject)
...
...
end;
----------
var
Form1: TForm1;
Scan:array[1..65534]of Tscan;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var n:integer;
begin
for n:=1 to 1000 do
scan[n]:=tscan.Create(form1);
end;
TUser (2004-09-10 16:13:00) [1]Можно также в цикле написать free и защитить его try ... except'ом. Еще лучше - все Free заменить на FreeAndNil и проверять на nil перед вызовом этой ф-ции.
icWasya (2004-09-10 16:00:00) [2]TObjectList+F1
PVOzerski (2004-09-10 15:50:00) [3]Если все объекты - наследники tComponent, можно воспользоваться их свойством Owner. Скажем, при создании делаем один какой-то компонент их owner'ом (или owner'ом их Owner'ов и т.д.). Тогда при "убийстве" этого "всеобщего" owner'а он "утянет за собой" всех. Естественно, способ не универсален.
redlord (2004-09-10 15:48:00) [4]значит нужно все мои обекты повесить на вспомогательный объект
а потом его убить
а еще это какнибуть можно реализовать ??
Рамиль (2004-09-10 15:47:00) [5]можно пройтись по Form1.Components и освободить все объекты с именем класса Tscan
HeKTO (2004-09-10 15:24:00) [6]form1.close; :))))) и все мертвы.....
Digitman (2004-09-10 15:21:00) [7]
> если не известно
сделай так чтобы было "известно" .. и не задавайся глупыми вопросами ... все в твоих руках !