Я только что обнаружил, что использование Option toUseExplorerTheme позволяет создать красивый прямоугольник выбора для VirtualStringTree. Однако, если установлен параметр Option toGridExtensions и в дереве есть несколько столбцов, для внутренних ячеек не рисуется вертикальная граница выделения, а также отсутствуют закругленные углы. Правильно отрисовываются только крайние края и углы крайнего левого и правого столбцов. Выглядит так, как будто прямоугольник выбора рисуется между крайними столбцами, а фон невыбранных столбцов просто рисуется поверх прямоугольника выбора.
Отключение toGridExtensions приводит к правильному прямоугольнику выбора, но я предпочитаю, чтобы он был включен, потому что ячейку можно выбрать, только щелкнув текст в стандартном режиме (а не щелкнув пустое место рядом с текстом).
Проблема возникает с Delphi 7 и XE2, а также, возможно, с другими версиями.
Чтобы воспроизвести, добавьте в форму TVirtualStringTree, покажите заголовок, добавьте несколько столбцов в заголовок и активируйте параметры toGridExtensions (MiscOptions), toUseExplorerTheme (PaintOptions), toExtendedFocus (SelectionOptions), запустите программу и щелкните любую ячейку.