Hi,

I experiment with dynamic user interface (UI).

Pretty strange situation I've got.

(My example has only one form created dynamically with some number of
dynamic UI, PalmOS 4.0)


Take a look:

1. Software creates the main form dynamically on FrmLoadEvent (does not load
the form from resource). After that, form pointer has address "A".

2. Then on FrmOpenEvent some number of UI creates dynamically, our form
changes its address in the memory from previous "A" to "B".

3. Then AppEventLoop gets winEnterEvent (since FrmSetActiveForm has been
used on form creation), and the most interesting fact, that winEnterEvent
has wrong old form address "A" (!!!) which is not valid anymore. The wrong
address is in event->data.winEnter.enterWindow .

This leads to software crash! The event with wrong address goes event loop
once and crash on next EvtGetEvent, with notice "read from Memory Manager
Data".

Perhaps PalmOS do not track its forms correctly.

Could anyone suggest something, how to avoid the application crash.

I've tried to use FrmSetActiveForm, after it changes its address, but it has
no effect.

Notice. This code works just fine on PalmOS 4.1

Thank you.
Sinoptic



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/

Reply via email to