В процедуре создаю сами объекты и по 2 потомка к каждому из них
procedure .........................
var element1, element2: TRectangle;
i: byte;
begin
for i:=1 to n do begin
comp[i]:=TRectangle.Create(form1);
comp[i].Parent:=form1;
.......................
element1:=TRectangle.Create(comp[i]);
element1.Parent:=comp[i];
........................
element2:=TRectangle.Create(comp[i]);
element2.Parent:=comp[i];
.........................
end;
end;
В теле другой процедуры уничтожаю все объекты
procedure .........................
var i: byte;
begin
for i:=1 to n do comp[i].free;
end;
Все как-бы работает. Но после многократного повторения этих процедур программа работает все медленнеее и медленнее с каждой следующей операцией создания-удаления. При этом никаких новых компонентов не создается.
Поэтому и появились мысли, что не все компоненты удалены. Возможно остались неудаленными потомки.
Пробовал изменить тело процедуры удаления на:
for i:=1 to n do begin
for j:=0 to comp[i].ChildrenCount-1 do comp[i].Children[j].Free;
comp[i].Free;
end;
Но ничего не меняется. Поэтому прошу совета, в чем может быть причина замедления программы и как правильно удалять потомки. Программа для Android.
Вопрос
Alex7wrt
Есть глобальный массив объектов
В процедуре создаю сами объекты и по 2 потомка к каждому из них
В теле другой процедуры уничтожаю все объекты
Все как-бы работает. Но после многократного повторения этих процедур программа работает все медленнеее и медленнее с каждой следующей операцией создания-удаления. При этом никаких новых компонентов не создается.
Поэтому и появились мысли, что не все компоненты удалены. Возможно остались неудаленными потомки.
Пробовал изменить тело процедуры удаления на:
Но ничего не меняется. Поэтому прошу совета, в чем может быть причина замедления программы и как правильно удалять потомки. Программа для Android.
Ссылка на комментарий
2 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.