Чтобы ответить на ваш первый вопрос «как ... использовать TreeView?» : реализовать событие OnChange TreeView.Параметр узла ссылается на вновь выбранный элемент.
О вашем втором вопросе «Должен ли я использовать Frames или PageControl?» : Ну, один не исключает другой, и вы прекрасно можете использоватьи то и другое.Действительно, я советую делать это, когда вы используете содержимое такой вкладки несколько раз.В этих случаях поместите фрейм с Align = alClient
на вашу вкладку.
Фреймы полезны для создания произвольного контейнера многократного использования.Например: вы можете установить один и тот же тип FrameType на каждой странице PageControl, предполагая, что все они выглядят одинаково, но каждый из них работает с разными данными.
Другое возможное незначительное преимущество использования фреймов - не путать всеэлементы управления на TabPages.
Но если каждая TabPage уникальна с точки зрения визуального стиля или макета элемента управления, то вполне нормально не использовать фреймы и создавать страницы непосредственно в PageControl.
Ио сдвигающейся части: я не совсем понимаю, чего вы хотите добиться, установив видимость вкладки, но переход на другую страницу (полностью зависящий от вашей реализации) в зависимости от узла может быть простым:
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
PageControl1.ActivePageIndex := Node.Index;
end;