Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.227.140.100] |
|
Сообщ.
#1
,
|
|
|
В обработчике sysAppLaunchCmdGoTo (реализация Global Find), если приложение уже запущено, вызываю FrmCloseAllForms(). После этого вызывается FrmCustomAlert(). При закрытии этого алерта на TE получаю Fatal Error. Симуляторы просто падают без каких-либо внятных сообщений об ошибке. Однако на эмуляторе 3.5 и 4.0 все работает прекрасно. Ковыряние в исходниках PalmOS тоже не привело к какому-либо пониманию такого падения - все функции проверяют наличие текущей формы и при ее отсутствии не пытаются с ней работать.
Если алерт вызывать до FrmCloseAllForms(), ничего не падает. Тот же алерт, вызванный при старте программы, пока ни одной формы еще не создалось, работает нормально. |
Сообщ.
#2
,
|
|
|
FrmCloseAllForms посылает в обработчики событий загруженных форм событие frmCloseEvent. Возможно, ты обрабатываешь это событие так, как нельзя этого делать при sysAppLaunchCmdGoTo, например используешь глобальные переменные или вызовы в другие сегменты кода. Хотя, ты проверяешь, что твоё приложение уже запущенно... Но всё равно поройся на тему того, как работает FrmCloseAllForms.
Добавлено Ещё возможны проблемы с переполнением стэка - увеличь его для своего приложения хотя бы до 8-16Kb. |
Сообщ.
#3
,
|
|
|
Я пробовал перед вызовом алерта все имеющиеся в очереди сообщения скормить соответствующим обработчикам. К сожалению это не исправило ситуацию. Увеличение стека тоже не помогает.
В тексте функции FrmActiveState() (она вызывается для сохранения/восстановления текущей формы/окна в том числе и из FrmCustomAlert) обнаружились любопытные комментарии: "Remove for now, since this introduces other bugs...". Быть может в PalmOS 5.x решили вернуть этот код к жизни? |
Сообщ.
#4
,
|
|
|
|
Сообщ.
#5
,
|
|
|
|