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)
FrmGetObjectIndexsearches 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)
FrmGetObjectIDreturns 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