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

A component named ComponentName already exists.


Axbor

Вопрос

При попытке заново создания фрейма выходит така ошибка "A component named MainMenuFrame already exists."

Удалял эту фрейма таким образом:

    MainMenu->Parent = 0;
    MainMenu->Free();
    MainMenu = 0;

Создаю таким образом:

        MainMenu = new TMainMenuFrame(this);
        MainMenu->Parent = this;

На компьютере работает нормально, но на андроиде вот такая проблема...

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

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

  • 0

xenon54, согласен. Но сам объект от этого никуда не денется - как минимум, его будет держать Parent.

Кстати, только сейчас обратил внимание на "compiler translates.....". Весьма удивился, если честно. Я почему-то был уверен, что всё от TObject и выше (дженерики не в счет) реализовано именно кодом в .pas файлах :)

procedure TObject.Free;
begin
// under ARC, this method isn't actually called since the compiler translates
// the call to be a mere nil assignment to the instance variable, which then calls _InstClear
{$IFNDEF AUTOREFCOUNT}
  if Self <> nil then
    Destroy;
{$ENDIF}
end;
Изменено пользователем kami
Ссылка на комментарий
  • 0

 

xenon54, согласен. Но сам объект от этого никуда не денется - как минимум, его будет держать Parent.

Кстати, только сейчас обратил внимание на "compiler translates.....". Весьма удивился, если честно. Я почему-то был уверен, что всё от TObject и выше (дженерики не в счет) реализовано именно кодом в .pas файлах :)

procedure TObject.Free;
begin
// under ARC, this method isn't actually called since the compiler translates
// the call to be a mere nil assignment to the instance variable, which then calls _InstClear
{$IFNDEF AUTOREFCOUNT}
  if Self <> nil then
    Destroy;
{$ENDIF}
end;

Касательно этого примера, да, фри не сделает того чего от него ожидают :)

 

Но просто фраза "Free на мобильных платформах не делает ничего." звучит слишком однозначно и может ввести некоторых в заблуждение.

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

Более того, она и меня ввела в заблуждение :)

Я посмотрел (когда начинал работать с FMX) код Free, увидел, что при ARC он будет пустой и успокоился на этом. А комментарии всякие читать... не барское это дело :D Вот и попался...

Изменено пользователем kami
Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

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