Перейти к содержанию
  • Регистрация
  • 0
long_island

Приложение крашится

Вопрос

Всем привет.

При сборке приложения на Mac OS, приложение может в любой момент крашнуться, просто закрывается без вывода какой либо ошибки или сообщения. Это происходит абсолютно в разные моменты времени. Иногда из - за exception, хотя исключение обработано, в дебаггере всплывает исключение(обработанное), далее приложение закрывается.

Может кто - то знает в чем может быть проблема? Возможно какие - то настройки проекта необходимо правильно установить. Перерыл уже весь гугл.

Заранее спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

  • 0

Приложение может крашнуться в этот моменте:

  if OpenDialog.execute then
  begin
    EditPath.Text := OpenDialog.FileName;
  end;

При чем на этапе 

OpenDialog.execute

Это недопустимая функция для работы в Mac OS?

Изменено пользователем long_island

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

доступна конечно, приложите демо проект.

что вы дальше делаете с файлом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Только что, ZuBy сказал:

доступна конечно, приложите демо проект.

что вы дальше делаете с файлом?

Так вот дело в том, что на этом моменте уже приложение закрывается, до открытия диалога выбора файла. Это, считай, и есть демо проект, но самое странно то, что это может произойти в один из 5-10 случаев.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Вы визуальному компоненту (EditPath) присваиваете значение, которое возвращает диалог.

Думаю, стоит сделать так, чтобы значение Text компонента изменялось в основном потоке (синхронизировать).

Можно вызов диалога делать в отдельном потоке, чтобы не тормозить всю программу (я так и делаю обычно), но вывод в GUI обязательно с синхронизацией главного потока.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
2 минуты назад, AlexG сказал:

Вы визуальному компоненту (EditPath) присваиваете значение, которое возвращает диалог.

Думаю, стоит сделать так, чтобы значение Text компонента изменялось в основном потоке (синхронизировать).

Можно вызов диалога делать в отдельном потоке, чтобы не тормозить всю программу (я так и делаю обычно), но вывод в GUI обязательно с синхронизацией главного потока.

это перебор кажется, оно запускается в главном потоке

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
11 минут назад, ZuBy сказал:

это перебор кажется, оно запускается в главном потоке

Перебор в чем? В запуске в отдельном потоке?

Ну если открыть диалог, то основное приложение приостановит свою работу - для многих приложений это критично.

Что касаемо присвоению свойству визуального компонента значений, возвращаемых тех или иных диалогов, то лучше создать переменную, присвоить ей возвращаемое значение диалога, а затем другому визуальному компоненту присвоить значение этой переменной.

Я на такие грабли наступал уже... И не поймешь - почему падает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
13 минут назад, AlexG сказал:

Перебор в чем? В запуске в отдельном потоке?

Ну если открыть диалог, то основное приложение приостановит свою работу - для многих приложений это критично.

Что касаемо присвоению свойству визуального компонента значений, возвращаемых тех или иных диалогов, то лучше создать переменную, присвоить ей возвращаемое значение диалога, а затем другому визуальному компоненту присвоить значение этой переменной.

Я на такие грабли наступал уже... И не поймешь - почему падает.

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

но раньше все работало нормально, не было необходимости в синхронизации

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Думаю, причина проще и сложнее одновременно. Просто что-то портит память.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
2 часа назад, kami сказал:

Думаю, причина проще и сложнее одновременно. Просто что-то портит память.

Легко

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

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

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

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


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

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