Form Object APIs

These are the most important form object APIs.

Converting Between IDs and Indexes

Most Form Manager routines require a form object index, but what you’ve specified in the form resource is a form object ID. As a result, you’ll find yourself converting from IDs to indexes very often.

UInt16 FrmGetObjectIndex(const FormType *form, UInt16 formObjectID)

FrmGetObjectIndex searches through the objects in the form, returning the index of the one that matches the given object ID. You will be using this routine all the time.

UInt16 FrmGetObjectID(const FormType *form, UInt16 formObjectIndex)

FrmGetObjectID returns the ID of the form object at the specified index. It is not commonly needed.

We don’t know why the Palm OS architects thought it necessary to have both form object IDs and form object indexes (it seems as though using indexes would have been simpler).


Unfortunately, you’ll find it very easy to accidentally pass an ID to a routine expecting an index. Since the data types (UInt16) are exactly the same, the compiler can’t catch this type of error. Instead, you’ll get a runtime error when the object at that index can’t be found (since you’ll be passing a number like 1000 to specify a 0-based index).

Hiding and Showing Objects

The initial state of the usable bit for each form object is specified in the form resource. Sometimes, you may want to dynamically hide or show a specific form object. You can do this with FrmHideObject or FrmShowObject .

void ...

Get Palm OS Programming, 2nd Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.