Thanks for your help! One more thing... can you tell me if this function is correct?
void SetFieldValue( FieldPtr field, UInt16 fieldLen, UInt16 *Offset)
///Problema em ler o valor Offset
{
MemHandle FieldTextHandle;
const char* FieldText;
DBRecordPtr RecordPtr;
FieldTextHandle = FldGetTextHandle(field); // Clear any existing text first FldSetTextHandle(field, NULL);
if (FieldTextHandle == NULL) { FieldTextHandle = MemHandleNew(fieldLen); } else { MemHandleResize(FieldTextHandle, fieldLen); }
FieldText = (const char*) MemHandleLock(FieldTextHandle); RecordPtr = (DBRecordPtr) MemHandleLock(CurrRecHandle);
StrCopy( FieldText, RecordPtr[*Offset]);<================= // *Offset += StrLen(RecordPtr[*Offset]) + 1;
MemHandleUnlock(CurrRecHandle); MemHandleUnlock(FieldTextHandle); FldSetTextHandle(field, FieldTextHandle); }
In PASCAL it's like this:
procedure SetFieldValue(Field : FieldPtr;FieldLen : UInt16;var Offset :
UInt16);
var
FieldTextHandle : MemHandle;
FieldText : PChar;
RecordPtr : PChar;
begin
FieldTextHandle := FldGetTextHandle(Field);
// Clear any existing text first
FldSetTextHandle(Field,nil);
if FieldTextHandle = nil then begin FieldTextHandle := MemHandleNew(FieldLen); end else begin MemHandleResize(FieldTextHandle,FieldLen); end;
FieldText := MemHandleLock(FieldTextHandle); RecordPtr := MemHandleLock(CurrRecHandle);
StrCopy(FieldText,@RecordPtr[Offset]); Offset := Offset + StrLen(@RecordPtr[Offset]) + 1;
MemHandleUnlock(CurrRecHandle); MemHandleUnlock(FieldTextHandle);
FldSetTextHandle(Field,FieldTextHandle); end;
The OffSet value that is passed to the function is "var OffSet". So how
can i pass it in C language? like &offset? Or *offset?
In the line that I put an arrow I have an error saying:
"function call 'StrCopy({lval} const char *, {lval} DBRecord *)' does not match 'StrCopy(char *, const char*)' "
-- For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/
