Delphi. Как сдвигать кадры с помощью TreeView? - PullRequest
2 голосов
/ 03 июня 2011

Пожалуйста, помогите мне с моим вопросом.

У меня есть TreeView и Frames, как я могу их сдвинуть, если я нажму на элемент TreeView?

Лучше использовать PageControl (PageControl1.Pages [i] .TabVisible: = false;) вместо Фреймов или Фреймов подходят лучше?

Большое спасибо!

1 Ответ

4 голосов
/ 03 июня 2011

Чтобы ответить на ваш первый вопрос «как ... использовать 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;
...