Структура отображается на основе TVirtualStringTree.Header.MainColumn
, который необходимо менять при каждом перемещении столбца, поскольку перемещение столбца не меняет его индекс, а свойство TVirtualTreeColumn.Position
.Самый простой способ - использовать OnHeaderDragged
.
procedure HeaderDragged(Sender: TVTHeader; Column: TColumnIndex; OldPosition: Integer);
begin
MyTree.Header.MainColumn := MyTree.Header.Columns.ColumnFromPosition(0);
end;