Перейти к содержанию
Fire Monkey от А до Я
  • 0

Правильное удаление объектов на Андроид платформе в С++Builder XE7


antarey

Вопрос

Для TEdit  EditRootPath в цикле динамически создаю дочерние елементы TSpeedButton.

for (int i = 0; i < CombinePathListItem->Count; i++)
{
TSpeedButton *editButton = new TSpeedButton(Application);
....
TSpeedButton *subButton = new TSpeedButton(Application);
.....editButton->AddObject(subButton);
EditRootPath->AddObject(editButton);

Потом в цикле и удаляю же их

TComponent *buttonMaster,*buttonSub;
if (EditRootPath->ChildrenCount>2)
{
for (int i = 0; i < CombinePathListItem->Count; i++)
{
buttonSub=Application->FindComponent("subButton"+IntToStr(i));
buttonSub->Free();
buttonMaster=Application->FindComponent("editButton"+IntToStr(i));
buttonMaster->Free();
}
}


}

При повторном создании получаю что компонент с таким именем уже существует, хотя в хелпе написано что в ХЕ7 Free() должна удалять и ставить объект в NULL

Пробовал использовать FreeAndNil() - вообще вылетает с приложения

 

 

 

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

А если попробовать, как требует стандарт С++, оператор delete:

buttonSub = Application->FindComponent("subButton"+IntToStr(i));
if(buttonSub)
 {
  delete buttonSub;//проверить в точке останова, что попадаем в этот блок кода
  buttonSub = NULL;
 }
//***

?

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...