I've encountered a similar problem with various ROMs, not the same error but
code crashing inside FldDrawField().   All of my problems occured during
similar initialization of fields withing forms.

I solved by testing if the form is visible.

 if ( FrmVisible( frm ) ) {
     FldDrawField(fldP);
 }


"Clark Dorman" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
>
> Greetings,
>
> I am getting a bus error when I try to set a field text handle an
> then update the field.  Below is a code fragment.  The error is occurring
> somewhere in the bowels of the OS at the FldDrawField(fldP) line.
>
>     I am using:
>         o  PalmOS Emulator,  3.0a7  (also happens in 3.0a6)
>         o  ROM version   palmos35-dr4-en-ezdbg
>         o  Codewarrior for Palm R6
>         o  3.1, C  Stationary
>
> Please note that I am using the 3.5 ROM, but CodeWarrior 3.1 C
> stationary.  I need to use the 3.1 C stationary (the original
> error is happening in a legacy app), and so I am using
> Pilot.h (vice PalmOS.h) because I need to support older
> devices.  Is there a disagreement between the newer ROMs and
> code compiled for the earlier OS's?
>
> The error does _not_ happen when I use non-debug ROMs.  Is there a
> problem with palmos35-dr4-en-ezdbg?  It does not happen, for example,
> with palmos35-dr4-en-ez.  On the Palm site, they say that you should
> trust the debug rom's over the non-debug ROMs, but, frankly,
> I'm at my wit's end and beginning to distrust the ROM.
>
> Here is the code.  Obviously, there a form (Form2) and it
> contains a multi-line field Form2FldField (and that's all it
> has).  This is being called when the field is opened.  I have
> tried a number of variations, playing with pointers and
> handles, etc., but to no avail.  Any help would be greatly
> appreciated.
>
> Thanks,
> Clark
>
>
>
> static void Form2FormInit( FormPtr formP )
> {
> FieldPtr     fldP;
> Handle     oldTxtH;
> Handle     txtH;
> CharPtr     txtP;
> Char     strP[12];
> FieldAttrPtr    attrP=NULL;
>
> StrCopy( strP, "1234567890\0" );
>
> fldP = GetObjectPtr(Form2FldField);
>
> // get some space in which to stash the string.
> txtH = MemHandleNew(StrLen(strP) + 1);
> txtP = MemHandleLock(txtH);
>
> // copy the string.
> StrCopy(txtP, strP);
> MemHandleUnlock(txtH);
> txtP = 0;
>
> // get the field and the field's current text handle.
> oldTxtH = FldGetTextHandle(fldP);
>
> // set the field's text to the new text.
> FldSetTextHandle(fldP, txtH);
> FldDrawField(fldP);
>
> // free the handle AFTER we call FldSetTextHandle().
> if ( oldTxtH != NULL ) MemHandleFree( oldTxtH );
> }
>
>





-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/

Reply via email to