Два TImageList у TListView, TToolbar и т.п. - зависает

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

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

Ответить
Аватара пользователя
Browny
новенький
Сообщения: 37
Зарегистрирован: 31.08.2007 10:42:55

Два TImageList у TListView, TToolbar и т.п. - зависает

Сообщение Browny »

Скачал сегодня [04.09.2007] новый снапшот Lazarus. Не успел порадоваться тому, что существенно изменили TImageList и TListView (ура, иконки появились!), как заметил проблему (присущую и более старым снапшотам, в т.ч. от 08.08.2007:
Если установить LargeImages и SmallImages, а затем попытаться закрыть проект (вариант: удалить TListView и затем попытаться удалить один из TImageList), зависает IDE.

Заметил, что несовместное использование этих свойств ошибку не вызывает.
Также не вызывает ошибку, если тому и другому свойству присвоен адрес одного ImageList.

Сейчас [05.09.2007 14:16] переименовал тему, так как проблема не в TListView.

Так же проблема возникает и при использовании TToolBar. Как только используем два свойства с TImageList, а потом удаляем TToolbar и пытаемся удалить один из TImageList - сразу зависает весь IDE.

Всё это происходит в DesignTime - до RunTime даже не добрался ещё.

Вывод: проблемы с TImageList?

нашёл эту проблему в багрепорте. http://www.freepascal.org/mantis/view.php?id=9609

Проблема где-то в TCustomImageList.Destroy, вот в этом кусочке текста:

Код: Выделить всё

  while FChangeLinkList.Count>0 do
    UnregisterChanges(TChangeLink(FChangeLinkList[0]));
  FreeThenNil(FChangeLinkList);
 


Пока ищу пути решения...
Аватара пользователя
Browny
новенький
Сообщения: 37
Зарегистрирован: 31.08.2007 10:42:55

Сообщение Browny »

Решение для TListView:
Патч: http://brokenplate.mpt.ru/filestorage/lcl-04.09.2007-svn11933-listviewfix-2.rar

Патч открыт для критики. Обязательно пишите замечания и предложения.
Ответить