This section describes:
Working in a descendent object
Working in an ancestor object
Resetting properties in a descendant
You can change descendent objects to meet specialized needs. For example, you can:
Change properties of the descendent object
Change properties of inherited controls in the object
Add controls to a descendent window or user object
Add menu items to a menu
For specifics about what you can do in inherited windows, user objects, and menus, see Chapter 10, “Working with Windows,” Chapter 14, “Working with User Objects,” and Chapter 13, “Working with Menus.”
When you use inheritance to build an object, the descendant is dependent on the definition of the ancestor. Therefore you should not delete the ancestor without deleting the descendants. You should also be careful when you change the definition of an ancestor object. You might want to regenerate descendent objects if you do any of the following:
Delete or change the name of an instance variable in the ancestor
Modify a user-defined function in the ancestor
Delete a user event in an ancestor
Rename or delete a control in an ancestor
When you regenerate the descendants, the compiler flags any references it cannot resolve so that you can fix them. For information about regenerating objects, see Chapter 4, “Working with Libraries.”
About local changes If you change a property in an ancestor object, the property will also change in all descendants—as long as you have not already changed that property in a descendant (in which case the property in the descendant stays the same). In other words, local changes always override inherited properties.