Nobody can help me? I´vre read the companion many times, but tried to find how the AddressBook manages it, but I´m stuck.
Must I set the point usin TblSetItemPtr or the implementing the function set bt TblSetLoadDataProcedure is enough? On Thu, 03 Feb 2005 12:10:38 -0200, AyloNs Hazzud <[EMAIL PROTECTED]> wrote: > On Thu, 03 Feb 2005 00:03:58 -0600, Logan Shaw <[EMAIL PROTECTED]> > wrote: > > > AyloNs Hazzud wrote: > >> 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; > >> > >> recordH = DmQueryRecord(AnPiDB, CurrentRecord); > >> ErrFatalDisplayIf(DmGetLastRecord(), "Record não encontrado"); > >> > >> recordP = MemHandleLock(recordH); > >> > >> dataP = (Char *) MemHandleLock(fldH); > >> > >> /*record->estado diz a medida atual*/ > >> FlpFToText(recordP->P[recordP->estado][row][column], dataP, > >> *dataSize - 1); > >> > >> MemHandleUnlock(fldH); > >> MemHandleUnlock(recordH); > >> > >> *dataH = fldH; > >> > >> return 0; > >> > >> } > > > > Since you're getting read errors from 0x000000 and 0x000002 and > > since you have two pointers of type (Int16 *), it seems suspicious > > that maybe one of them is NULL. Have you tried validating > > all the arguments at the beginning of the function, like this: > > > > if (! tableP || ! dataH || ! dataOffset || ! dataSize || ! fld) > > { > > FrmCustomAlert (MyAlert, "NULL pointer passed", "", ""); > > return 1; > > } > > > > Also, it looks like you are storing a pointer (the "P" member > > of the AnPiRecord) in a database. That can be a bad idea. > > Are you sure that after you read recordP that the pointer > > recordP->P actually points anywhere? > > You must be talking about this piece of code: > > FlpFToText(recordP->P[recordP->estado][row][column], dataP, > >> *dataSize - 1); > > This function reads the P member and write it´s value (FlpCompDouble) in a > especially formated text in dataP, which is a pointer to a locked > MemHandle, Then, I assign this memhandle to the *data parameter. > > > > > Beyond that, my best advice is to step through this function > > in the debugger to establish exactly *which* line of code is > > accessing memory at 0x000000. That should at least tell you > > which pointer is invalid. (If you don't want to use the > > debugger, put a bunch of FrmCustomAlert()s in and then you > > have to click "OK" over and over again, and one time after > > you click "OK", the system will print its error message > > about invalid access to 0x000000. Then you know it's after > > the FrmCustomAlert() you just clicked "OK" for.) > > > > - Logan > > > > I´ve already tried to debug in search of an pointer to Ox000000 being set > in my function, but I cannot find it. Actually, this functions always run > seamless, bothh anallowed access occurs when I´m adding text to the field, > more precisely in the ExpandFieldHeight function. > > Here is a screenshot of my debugging section when exiting the function. I > really cannot realize what I´m doing wrong. > > http://img226.exs.cx/img226/3047/screenshot0411go.jpg > > All data is read and saved OK. In fact, in a actual device, It runs OK. > The item style is narrowTextTableItem, and I have set its int field with > TblSetItemInt. > > Must I have to set any other fields before drawing the table? I want to > left the pixels on the right blank, must I implement the drawprocedure or > I can left it just as it is? > > -- > AyloNs Hazzud, com N invertido > > Sempre usando Opera e seu fantástico programa de email, o M2. Comparação > do zoom do Opera com o do Firefox: > http://www.aylons.kit.net/2004/11/isso-sim-que-zoom.html > > -- > For information on using the Palm Developer Forums, or to unsubscribe, please > see http://www.palmos.com/dev/support/forums/ > -- For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/