Hi folks,

Does anyone know why calling FrmGetObjectIndex would cause POSE to throw 
up an error dialog indicating "window.c, line:3826, Bad window"? It's 
happening in the following utility function, which I'm using from other 
places as well. As far as I can tell, the parameters are all ok, but 
there must be something I'm missing. :-P

Here's the routine:

static FieldPtr SetFieldTextFromHandle(UInt16 fieldID, MemHandle txtH, 
FormPtr frm, Boolean redraw)
{
    MemHandle      oldTxtH;
    FieldPtr    fldP;
    UInt16      temp;

    // get the field and the field's current text handle.
    temp = FrmGetObjectIndex(frm, fieldID); // ERROR HAPPENS HERE
    fldP     = FrmGetObjectPtr(frm, temp);
    ErrNonFatalDisplayIf(!fldP, "missing field");
    oldTxtH  = FldGetTextHandle(fldP);

    // set the field's text to the new text.
    FldSetTextHandle(fldP, txtH);
    if ( redraw )   FldDrawField(fldP);

    // free the handle AFTER we call FldSetTextHandle().
    if (oldTxtH)
       MemHandleFree(oldTxtH);

    return fldP;
}

And here's where I'm calling it from:

static void EditReminderDateFormInit(FormPtr frmP)
{       
        Reminder r;
        MemHandle h;
        Char *numUnitsStr;
        
        // Get Record from DB
        h = DmQueryRecord( gDB, gCurrentRecord - 1 );
        UnpackReminder( &r, MemHandleLock( h ) );
        
        // put text into field
        StrIToA( numUnitsStr, r.numUnits ); // it's stored as an Integer, 
so we convert it to string for the field
        gEditNumUnitsTextHandle = MemHandleNew( StrLen( numUnitsStr ) + 1 );
        if ( !gEditNumUnitsTextHandle ) return;
        StrCopy( MemHandleLock( gEditNumUnitsTextHandle ), numUnitsStr );
        MemHandleUnlock( gEditNumUnitsTextHandle );
        
        // Point text fields to text handles
        SetFieldTextFromHandle( EditReminderDateNumUnitsField, 
gEditNumUnitsTextHandle, frmP, false );
}

Thanks in advance for any help! I've been staring at this for a while, 
and it's just got me stymied.

Sean


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

Reply via email to