[Solved] Магическое исчезновение Data в TListView

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

[Solved] Магическое исчезновение Data в TListView

Сообщение KKAA » 15.05.2015 15:58:01

Пытаюсь отсортировать по своему элементы TListview путем сравнения нескольких параметров не одного типа, хранящихся во внешнем контейнере. Указатель на контейнер сохраняю в поле Data. Когда вызываю метод onCompare, то, после нескольких удачных проходов, я получаю AV в строке item2.data. Причем если я делаю сравнение как
Код: Выделить всё
Compare:=i1-i2;
, то все нормально и все сравнивается. Но если через if..then ловлю av.
тестовый проект во вложении.
Где я там дурак?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось KKAA 15.05.2015 22:23:17, всего редактировалось 1 раз.
KKAA
незнакомец
 
Сообщения: 8
Зарегистрирован: 10.05.2015 18:39:02

Re: Магическое исчезновение Data в TListView

Сообщение Снег Север » 15.05.2015 21:46:15

забыта проверка на ноль
Код: Выделить всё
  i1:=Integer(Item1.Data^);
  i2:=Integer(Item2.Data^);
  Compare:=0;
  if i1>i2 then
     Compare:=1
  else
  if i1<i2 then
     Compare:=-1
  else
  Compare:=-0;     
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3053
Зарегистрирован: 27.11.2007 16:14:47

Re: Магическое исчезновение Data в TListView

Сообщение KKAA » 15.05.2015 22:13:52

Да, спасибо, уже разобрался, при выполнении моего кода со случайного шага запускался бесконечный цикл и о содержании правильных указателей уже и речи не было, отсюда и AV
KKAA
незнакомец
 
Сообщения: 8
Зарегистрирован: 10.05.2015 18:39:02

Re: Магическое исчезновение Data в TListView

Сообщение Vapaamies » 16.05.2015 03:42:16

Снег Север писал(а):забыта проверка на ноль

Блин, а я втыкал-втыкал в код, дивился его логике, но так и не смог понять, что же хотел выразить автор. :mrgreen:
Аватара пользователя
Vapaamies
постоялец
 
Сообщения: 292
Зарегистрирован: 24.07.2012 22:37:59
Откуда: Санкт-Петербург


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 217

Рейтинг@Mail.ru