These are the most important form object APIs.
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).
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