На форме стоит TreeView, PageControl и кнопка.
При смене страницы - меняется текущий узел, а при смене узла меняется страница.
Code: |
unit Unit1; {©Drkb v.3(2007): www.drkb.ru, ®Vit (Vitaly Nevzorov) - Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.} interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls;
type TForm1 = class(TForm) TreeView1: TTreeView; Button1: TButton; PageControl1: TPageControl; procedure Button1Click(Sender: TObject); procedure TreeView1Change(Sender: TObject; Node: TTreeNode); procedure PageControl1Change(Sender: TObject); private procedure addItem(t: String); { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.DFM}
Procedure TForm1.addItem(t:String); var TabSheet:TTabSheet; Node:TTreenode; begin TabSheet:=TTabSheet.Create(Self); TabSheet.PageControl:=PageControl1; TabSheet.caption:=t; Node:=TreeView1.Items.Add(nil, t); Node.data:=TabSheet; //ассоциируем узел с страницей TabSheet.tag:=Integer(Node); // ассоциируем страницу с узлом
end;
procedure TForm1.Button1Click(Sender: TObject); begin TreeView1.HideSelection:=false; addItem('Item1'); addItem('Item2'); addItem('Item3'); addItem('Item4'); end;
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode); begin PageControl1.ActivePage:=TTabSheet(Node.data);// Доступ к ассоциированной странице через узел end;
procedure TForm1.PageControl1Change(Sender: TObject); begin TreeView1.Selected:=TTreeNode(Pointer(PageControl1.ActivePage.tag));// Доступ к ассоциированному узлу через страницу end;
end. |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!