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

List box ошибка при создание ListBox1.AddObject();


Просто Проги

Вопрос

Привет всем может кто подскажет что не так создаю процедуру для добавления

var

 item: TMetropolisUIListBoxItem;

begin

item :=TMetropolisUIListBoxItem.Create(Form1);

item.Title:='Title';
item.SubTitle:='sub';
item.Description:=dua;
ListBox1.AddObject(item);

end;

Всё добавляется,но когда я пытаюсь закрыть программу то падает ошибка

procedure TObject.FreeInstance;
begin
  CleanupInstance;
_FreeMem(Pointer(Self));// на этой строке ошибка
end;

Как я понял что ошибка связана с памятью как можно правильно освободить память? и избавиться от этой ошибки )

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

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

  • 1

В Seattle этот код работает, кроме строки:

item.Description:=dua;

 видимо есть глобальная переменная dua?

 в общем обновляться без вариантов, ошибок много исправили и отладка лучше стала.

можно еще попробовать заменить 

ListBox1.AddObject(item);

на 

item.Parent := ListBox1;

 

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

собственно поставил я 10 версию) но проблема не исчезла))

var
item: TMetropolisUIListBoxItem;
i:integer;
begin
for I := 0 to 100 do   begin

item :=TMetropolisUIListBoxItem.Create(ListBox1);

item.Title:='Title';
item.SubTitle:='sub';
//item.Description:=dua;
//ListBox1.AddObject(item);
item.Parent := ListBox1;
end;
end;

таким  образом я запомнил всё норм но стоит мне немного проскролить а потом закрыть то будет ошибка в модуле System

procedure TObject.FreeInstance;
begin
  CleanupInstance;
  _FreeMem(Pointer(Self));
end;

чего ей надо??)

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

А у меня чего-то нет ошибок.

procedure TForm1.FormCreate(Sender: TObject);
var
 it: TMetropolisUIListBoxItem;
begin
  it := TMetropolisUIListBoxItem.Create(Application);
  it.Title:='Title';
  it.SubTitle:='sub';
  it.Description:='dua';
  ListBox1.AddObject(it);
end;

 

Ссылка на комментарий
  • 0
22 минуты назад, POV сказал:

А у меня чего-то нет ошибок.

Воспроизводится под Windows и в Seattle и в Berlin.
1). Добавьте в листбокс 50 TMetropolisUIListBoxItem.
2). Проскрольте листбокс.
3). Кликните по любому айтему.
4). Закройте программу.

Сбой происходит при закрытии программы: в секции финализации FMX.Forms, а именно в TStyleCache.Clear.
Если заменить TMetropolisUIListBoxItem на TListBoxItem, сбой не происходит.

tst_Listbox.zip

Ссылка на комментарий
  • 0
4 минуты назад, enatechno сказал:

Воспроизводится под Windows и в Seattle и в Berlin.
1). Добавьте в листбокс 50 TMetropolisUIListBoxItem.
2). Проскрольте листбокс.
3). Кликните по любому айтему.
4). Закройте программу.

Сбой происходит при закрытии программы: в секции финализации FMX.Forms, а именно в TStyleCache.Clear.
Если заменить TMetropolisUIListBoxItem на TListBoxItem, сбой не происходит.

tst_Listbox.zip

серьезный подход

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

ReportMemoryLeak выдает

---------------------------
Unexpected Memory Leak
---------------------------
An unexpected memory leak has occurred. The unexpected small block leaks are:
1 - 12 bytes: TWinAcceleratorKeyRegistry.TAcceleratorKeyReceivers x 1
---------------------------
ОК   
---------------------------

проблема с Берлином, в инете есть информация если пользоваться гуглом

 

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

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

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

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

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

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

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

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

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

×
×
  • Создать...