Display vs. Real Columns
When allowing column drag & drop to reorder columns, the user may see columns in an order other than the order in which an application sees the columns. An application always uses "real" columns in methods and properties. A column which was originally added as column 0 will always remain column 0 for method and property parameters, even if the column order has been changed and the column is no longer the first column displayed. This simplifies the application's programming logic as it can assume that the column position never changes. SftTree/OCX translates the real column number into the actual column number. The actual column number is referred to as the "display column" number.
The display column number is identical to the order in which the columns are displayed.
Translating Real Column to Display Column
An application can retrieve a "real" column's "display" column number by inspecting the column information returned by Column.DisplayPosition. In this example, the real column number of the third column is translated to the display column number:
displayColumn = Tree1.Column(2).DisplayPosition
Translating Display Column to Real Column
If an application needs to translate a display column number to a real column number, the ColumnsObj.ColumnIndex property can be used.
In this example, the display column number of the second displayed column is translated to the real column number:
realColumn = Tree1.ColumnsObj.ColumnIndex(1)