I am trying to build a function that will return the contents of a field
(basic). The trouble is that all the examples I have found are void
functions that do not return anything.
Question #1: when I unlock the handle "h", does that invalidate the pointer
to the text string so that it cannot be reliably returned?
Question 2: If that is the case, how do I work around it?
Thanks in advance.
Jim Haines
char *getFieldText(UInt16 fieldID)
{
FieldType *fldP;
MemHandle h;
char *field;
fldP=getObjectPtr(fieldID); //get a pointer to the field
if(FldGetTextLength(fldP)>0) // if there is something in the field
{
h=FldGetTextHandle(fldP); //get a handle to the edited text in the field
if(h)
{
FldSetTextHandle(fldP,NULL); //disassociate the field and string
field = MemHandleLock(h); // get the text and assign to "field"
MemHandleUnlock(h); // unlock the handle to the chunk
FldSetTextHandle(fldP,h); // assign the edited string to the field
FldDrawField(fldP); // write it back to the field
}
}
return field; // return the pointer to the edited chunk
}
Jim Haines
--
For information on using the Palm Developer Forums, or to unsubscribe, please
see http://www.palmos.com/dev/support/forums/