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

У меня возникает ошибка при попытке добавить пустой TObject в TStringList


Alex Bozhko

Вопрос

Примерно такой код:

ComboBox1.Items.Clear;

for I:= 0 to 3 do 
begin
  ComboBox1.Items.AddObject(
    IntToStr(I), 
    TObject(I));
end;

Валится ошибка в мобильном приложении под Андроид (запускаю под Nexus 7 2012).

 

Class segmentation fault(11)

 

В десктопном FM приложении код работает как часы (собственно, он и должен работать).

 

Вероятно, это не совсем проблема компонента, но поймал ее именно при работе с ним.

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

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

  • 0
  • Администраторы

Ошибка вашего кода, не связанная с TComboBox.

Под мобильными платформами работает ARC - Автоматический подсчет ссылок. В вашем примере, вы добавляете псевдообъект:

TObject(I)

При добавлении объекта у него должен увеличиваться счетчик ссылок RefCount (поле объекта). Компилятор автоматически вызывает системный метод TObject:

function __ObjAddRef: Integer; virtual; 

В этом методе идет увеличение внутреннего поля FRefCount. А так как объекта физически не существует, то вы получаете Access Violation.

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

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