greetings

i have one quite strange problem... i don't know how to solve it, because only gremlinz can invoke it and 'minimize...' in emulator doesn't work in this case (it just minimize all events and then reports something what is clearly not possible....)

what happens:
progress dialog starts
i get strange ctlselect event on control with id 11603 (maybe cancel button?)
and there it is:
20.830 (588): <- EvtGetSysEvent: penDownEvent X:70 Y:147
20.830 (588): <- EvtGetEvent: penDownEvent X:68 Y:71
20.880 (588): <- EvtGetEvent: ctlEnterEvent ID: 11603
20.890 (589): <- EvtGetPen: screenX=67, screenY=74, penDown=1.
20.890 (590): <- EvtGetPen: screenX=76, screenY=69, penDown=1.
20.890 (591): <- EvtGetPen: screenX=80, screenY=64, penDown=1.
20.890 (592): <- EvtGetPen: screenX=80, screenY=64, penDown=0.
20.960 (592): === WARNING: ********************************************************************************
20.960 (592): === WARNING: Hamilton (unknown version) just read from memory location 0x0002EF79, which is in Memory Manager data structures.


---
it happens with palmos3.5 and 4.1, i never saw this in simulator.

is there any known bug with progress dialog or is it my fault that it is crashing? i never succeeded to crash it manually, only with gremlins, but now almost all time-consuming operations use some progressdialog so gremlins can crash it almost everywhere.

everywhere i use progressmgr i use it like this:


static Boolean PrgCallback(PrgCallbackDataPtr cbP) { StrNCopy(cbP->textP,(char *)(cbP->userDataP),cbP->textLen); StrNCat(cbP->textP,":\n\n",cbP->textLen);

        switch(cbP->stage)
        {
                case STAGE_INIT:
                        StrNCat(cbP->textP,SS_INIT,cbP->textLen);
                        break;

                case STAGE_CONNECT:
                        StrNCat(cbP->textP,SS_CONNECT,cbP->textLen);
                        break;
                ....

                default:
                        cbP->textP[0]=0;
                        break;          
        }               
        cbP->textChanged=1;
        return(true);
}

void Time_Consuming_Function(void)
{
        progress=PrgStartDialog("some text",PrgCallback,ptr_to_some_buffer);
        ...
        while(...)
        {
                EvtGetEvent(&event, 5);
                PrgHandleEvent(progress,&event);
                if(PrgUserCancel(progress)==true)
                        break;
                PrgUpdateDialog(...);
        }
        PrgStopDialog(progress,true);
}

i hope there is someone who knows what i mean and knows solution...
thanks in advance

Michal Seliga / Visicom

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

Reply via email to