ошибка SIGSEGV при модальном показе формы

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

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

Ответить
RusDeveloper
новенький
Сообщения: 92
Зарегистрирован: 06.04.2016 11:02:43

ошибка SIGSEGV при модальном показе формы

Сообщение RusDeveloper »

есть форма F1, из нее модально показывается форма F2, а на OnShow формы F2 модально показывается F3. так вот при показе F3 в предке TCustomForm.ShowModal на линии Application.Idle(true); при первом же вызове вываливается ошибка SIGSEGV. Если с формы F2 удаляю TToolBar (казалось бы при чем здесь TToolBar???), то все показывается без ошибок. Приведу код цикла, в котором вываливается ошибка из TCustomForm.ShowModal:

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

        repeat
          { Delphi calls Application.HandleMessage
            But HandleMessage processes all pending events and then calls idle,
            which will wait for new messages. Under Win32 there is always a next
            message, so it works there. The LCL is OS independent, and so it uses
            a better way: }
          try
            WidgetSet.AppProcessMessages; // process all events
          except
            if Application.CaptureExceptions then
              Application.HandleException(Self)
            else
              raise;
          end;
          if Application.Terminated then
            ModalResult := mrCancel;
          if ModalResult <> 0 then
          begin
            CloseModal;
            if ModalResult<>0 then break;
          end;

          Application.Idle(true);
        until False;


что это и как с ним бороться?

Добавлено спустя 24 минуты 53 секунды:
если удалить TActionList со всеми акциями с F2, то ошибка тоже пропадает (TToolBar содержит кнопки, к которым привязаны акции).
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

акции - ух ты. Еще так не слышал и не читал :mrgreen:
выложите исходник, а не кусок...

п.с.
Уже второй вырви/глаз.... Зачем таким большим делать то? Или вы думаете что не увидят???
RusDeveloper
новенький
Сообщения: 92
Зарегистрирован: 06.04.2016 11:02:43

Сообщение RusDeveloper »

уже разобрался :D проблема была в OnUpdate для TActionList

pupsik писал(а):акции - ух ты. Еще так не слышал и не читал :mrgreen:

а как вы их называете? действия что ли?
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

RusDeveloper писал(а):а как вы их называете? действия что ли?


обычно, пишут по аглицки.
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

а как вы их называете? действия что ли?
то что их так гугл переводит нет ассоциации с программированием. Это более к экономике...
"Действия" более похоже. Или оригинальное их название.
проблема была в OnUpdate для TActionList
я не уверен что проблема в нем была. Ну: коли решилось то и ладно.

п.с.
для меня остался открытым вопрос: зачем делать такой большой код???? И это уже в который раз. Читать его ппц. как неудобно, а беглый просмотр из общей картины "режет".
RusDeveloper
новенький
Сообщения: 92
Зарегистрирован: 06.04.2016 11:02:43

Сообщение RusDeveloper »

pupsik писал(а):зачем делать такой большой код?

чтобы глаза никто не напрягал :D
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

RusDeveloper, обычно, люди настраивают шрифт под себя. Да и у многих баннерная слепота -- большой шрифт зачастую не видится сразу.
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

Лекс Айрин :D
Не уверен что слепота. Просто очень контраст. И текст, по крайней мере для меня, не читабелен стал.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

pupsik, это официальное название.
Ответить