You say your corrected your original problems with the pointer vs handle... There may still be problems in your correction. Can you post the code since DmWrite "May display a fatal error message if the record pointer is invalid or the function overwrites the record?"
"Steve K" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > > ok, i've figured out the original issue regarding handles vs ptr. That was > the main problem I had before. Everything now seems to be going ok except > for one thing. > After I dynamically append 3 chars to any of my fields that use this number > pad and then attempt to grafitti a back space I get the following error: > > DataMgr.c...DmWrite:DmWriteCheck failed > > I'm not making any calls to DmWrite? Not sure exactly what is going on. > > Any help is appreciated. > > Thanks, > > Steve K > > > "Steve K" <[EMAIL PROTECTED]> wrote in message > news:[EMAIL PROTECTED] > > > > I'm trying to implement a number pad for faster data entry into fields. > My > > problem is I want to be able to use both the number pad and good old > fashion > > grafitti as well. I've gotten it to dynamically update the field based on > > what was selected on the number pad, however, if I return to the field and > > try to backspace or enter any data I receive the following error: > > MemoryMgr.c, Line:4365,NULL handle > > > > I'm pretty sure I know what is going on, so my question then is how do I > do > > it correctly. Here's the code as is: > > > > //This function takes the number that was pressed on the > > //number pad and concats it to whatever is already in the > > //field. > > static Boolean FldConcatText(FieldType* fldP, char* strBuffer) > > { > > if(fldP) { > > //Get the current data of the field and concat strBuffer. > > char* originalText = FldGetTextPtr(fldP); > > UInt16 strLen; > > > > if(originalText) { > > strBuffer = StrCat(originalText, strBuffer); > > } > > strLen = StrLen(strBuffer); > > if(strLen < FldGetMaxChars(fldP)) { > > //Writes the strBuffer to the Field > > FldFreeMemory(fldP); // initialize everything, just in case. > > FldSetTextPtr(fldP, strBuffer); > > > > //Set the cursor to the end of the field > > FldSetInsPtPosition(fldP, strLen); > > > > return true; > > } > > } > > return false; > > } > > > > > > > > > > > > -- For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/
