Does anyone know why frmOpenEvent is executed twice per form?  Once when opened 
and again when closing.  Maybe I shouldn't ask why, I do know that FrmGotoForm 
generates a frmOpenEvent and frmLoadEvent.  My application, upon opening a 
form, initializes fields within the form by retrieving data from the bluetooth 
virtual serial port.  The problem I am having is that this data is requested 
twice when it only needs to be once.  Is there some other place I can put this 
function so that the ONLY time the data is retrieved is when the form is open?

I have a temporary workaround by doing the following (where Refresh2 is a 
global variable that is set to TRUE in the previous form):


static Boolean HardwareFormHandleEvent(EventType* pEvent)
{
        Boolean         handled = false;
        FormType*       pForm = FrmGetActiveForm();
        FieldType*      FieldPtr;
        UInt32          numBytes = 0;
        Err                     err;    

        if(Refresh2 == true)
        {
                WriteTextToField(GetDeviceName(), 1007);        // Executed 
only ONCE if called from here
                Refresh2 = false;
        }

        switch (pEvent->eType) {
                case ctlSelectEvent:
                        switch (pEvent->data.ctlSelect.controlID)
                        {
                                case 1005:                                      
// Edit Device Name
                                        FrmPopupForm(1702);     
                                        Refresh = true;
                                        handled = true;
                                        break;
                        
                                case 1006:                                      
// Edit Pin #
                                        Refresh = true;
                                        FrmPopupForm(1703);     
                                        handled = true;
                                        break;
                                
                                case 1004:                              // 
Upgrade Device
                                        Refresh = true;
                                        FrmPopupForm(1701);     
                                        handled = true;
                                        break;
                                
                                case 1014:                              // Done
                                        FrmGotoForm(ModeForm);
                                        handled = true;
                                        break;

                                default:
                                        break;
                        }

                case frmOpenEvent:
                        FrmDrawForm(pForm);
                        handled = true;
                        break;
                
                default:
                        break;
        }
        return handled;
}



I realize there has to be a better solution than this.

thanks,

~Tony


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

Reply via email to