Динамическое создание формы баг или фича

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

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

Динамическое создание формы баг или фича

Сообщение zub » 07.03.2012 01:38:59

Всем здравствовать!

Как обычно, раньше все работало и вдруг перестало.
В рантайме создаю, модально показываю, и уничтожаю форму нарисованную в дизайнере:
Код: Выделить всё
  LayerWindow:=TLayerWindow.Create(nil);
  LayerWindow.ShowModal;
  Freeandnil(LayerWindow);

На форме присутствуют TListView и TImageList. В TListView`е отображаются картинки из TImageList. С недавних пор эта форма стала показываться только 1 раз, при попытке второго показа - SIGSEGV гдето внутри чтения ресурсов при создании формы. если убрать показ картинок в листвиве - всё работает как надо.

минимальный проект с проблемой прилагаю, прошу пояснить это баг или руки не оттуда и голова не о том. Первая форма нарисованная в дизайнере в моей программе - и на тебе на ровном месте((

упд: лазарь и фпц транковые. не работает под gtk2 и win
У вас нет необходимых прав для просмотра вложений в этом сообщении.
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Динамическое создание формы баг или фича

Сообщение Максим » 07.03.2012 03:20:14

Это баг, думается. Отпишите в багтрекер.

zub писал(а): С недавних пор эта форма стала показываться только 1 раз

Хорошо бы было узнать, с каких. :)

TListView маслался недавно в ревизиях 35257, 35258, 35274.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 599
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Динамическое создание формы баг или фича

Сообщение zub » 07.03.2012 09:42:23

Отписал на трекер http://bugs.freepascal.org/view.php?id=21431
В 35256 аналогично не работает, отпало когдато раньше.
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Динамическое создание формы баг или фича

Сообщение v-t-l » 07.03.2012 12:44:48

Испытал тестовый проект.
Lazarus 0.9.31 r35407 FPC 2.6.0 i386-win32-win32/win64
LCLWidgetType: win32 - работает как задумано. Form2 создается и показывается сколько угодно раз.
LCLWidgetType: gtk2 (D:\Program Files\Inkscape\libgtk-win32-2.0-0.dll, v2.12.0006.0000) - Form2 создается в неизвестной позиции, если выбрать из контекстного меню кнопки на панели задач пункт "Развернуть", то окно разворачивается. И так - сколько угодно раз.
v-t-l
энтузиаст
 
Сообщения: 741
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Динамическое создание формы баг или фича

Сообщение zub » 07.03.2012 15:51:23

Ошибка зависит от компилятора, в моей предидущей сборке компилятора работает (сборка от 25.01.12, ревизия хз какая). в более новой rev20348 уже нет
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Динамическое создание формы баг или фича

Сообщение daesher » 07.03.2012 18:40:01

Не уверен, но, возможно, дело в создании формы: как-то в рамках LCL шёл спор о том, можно ли создавать форму без ресурсов, и было решено, что её можно как раз создавать через TForm.Create(nil), но нельзя - через Application.CreateForm(TForm,Form)
Возможно, у Вас - обратный случай, надо использовать Application.CreateForm. Странно, что работает в зависимости от какого-то внутреннего параметра.
daesher
постоялец
 
Сообщения: 221
Зарегистрирован: 09.03.2010 22:17:14

Re: Динамическое создание формы баг или фича

Сообщение zub » 07.03.2012 22:33:18

daesher
Нет, не тот случай, там был экспекшен с просьбой использовать другой конструктор, тут SIGSEGV на ровном месте
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26


Вернуться в Lazarus

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

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

Рейтинг@Mail.ru