The append operation is just like replace, except that the data passed in the source array or file is appended to the existing data in the control. In the case of array mode, the best way to handle this is to define an array large enough for all the items. For example, you might plan on a maximum of 1000 items, but initially load only 50. If you then append another 75, put them in the array positions from 51 to 125, and specify ARRAY(51) as the Array parameter and 75 for the Itemcount parameter. This way, your array continues to correspond to the current state of the list, so that you can make sense of the returned selection information.
Warning: XTROP_APPEND is incompatible with cell editing. If you want to append rows to a tree that has editable cells, you should do it in two steps:
• | Do the append with the XTF_NOSEL flag added, which will cause the operation to exit immediately without waiting for a selection or for any cell editing. |
• | Use XTROP_RESELECT to resume editing the expanded set of rows. |
The alternative would be to just add the new rows to your data and answer arrays, then use XTROP_REPLACE with Itemcount set to the new total number of rows. As a result of various optimizations to XTROP_REPLACE since XTROP_APPEND was first introduced, the overhead of the replace operation is probably little different from the append anyway.