At 11:20 2002-12-15 +0300, you wrote:
First, it isn't POSE that's complaining, its the debug build of Palm OS.I'm having the "Windows cannot be under forms because they can't be redrawn" SysFatalAlert from POSE 3.5. The error occurs as one launches Find and then hits any button on the Find dialog box. It is clear that the windows have to be closed first but what is the Find launch event to handle the windows properly, and how to resume the application interrupted after Find finished?
The reason for this error is due to how forms redraw themselves. In release versions of the OS, the system tries to save a copy of the screen under the Find dialog, and will restore from that when its dismissed. If memory is low, the system won't save the image, but will ask the forms under the find dialog to redraw themselves when the dialog is dismissed. To help you debug this situation, the debug builds of the OS always use the redraw events.
For this redraw to work, your stack of windows must all be forms, since only forms have event handlers. In general, Palm OS doesn't really handle independent windows that aren't also forms, except for special cases, like list popups and menus. So, since you're using a non-form window, the OS can't redraw things correctly when the find dialog goes away.
Since find is always launched by a virtual character keyDown event, you could trap that and dismiss your window first before allowing it, or you could consider why you're using a non-form window in the first place, and maybe reorganize your application.
--
Ben Combee <[EMAIL PROTECTED]>
CodeWarrior for Palm OS technical lead
Palm OS programming help @ www.palmoswerks.com
--
For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/
