I though i´ve done everything just rigth: set each table item to
narrowTextTableItem, and there goes my CallBack function set with
TblSetLoadDataProcedure.

When loading the table it runs ok (the FlpFtoTexto function writes the
numeric data in a specially formated format). But when I try to edit
any field using the debugger it complains about readint low address
memory.

However, the field data does not get corrupted in any way, and it´s
saved smoothly when I release the focus, with no error messages.
Actually, I just get the erro message when I add some text, and it
occurs during ExpandFieldHeight function execution.

This error messages (which is not shown in the device) are annoying
and worrying me about future unexpected crashs in field. What am I
doing wrong or not simply not doing.

My load callback function:

Err PrvMedindoPegaItem(void *tableP, Int16 row, Int16 column, Boolean editable,
                                                        MemHandle *dataH, Int16 
*dataOffset, Int16 *dataSize,
                                                        FieldPtr fld){
        FieldAttrType attr;
        Char * dataP;
        AnPiRecordPtr recordP;
        MemHandle recordH, fldH;
        
        /*Aproveita que a função lida field a field e os configura*/
        FldGetAttributes(fld, &attr);
        attr.justification = rightAlign;
        attr.numeric = true;
        attr.singleLine = true;
        FldSetAttributes(fld, &attr);


        FldSetMaxChars(fld, 6);
        *dataSize = FldGetMaxChars(fld) + 1;
        *dataOffset = 0;
        
        /*Retorna 1 se houver erro na alocação da memória*/
        if (!(fldH = MemHandleNew(*dataSize)))
                return 1;
                
        recordP = MemHandleLock(recordH = DmQueryRecord(AnPiDB, CurrentRecord));
        
        dataP = (Char *) MemHandleLock(fldH);
        
        /*record->estado - 1 diz a medida atual*/
        FlpFToText(recordP->P[recordP->estado][row][column], dataP, *dataSize - 
1);
        
        MemHandleUnlock(fldH);
        MemHandleUnlock(recordH);
        
        *dataH = fldH;

        return 0;

}

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

Reply via email to