Как связать TreeView и PageControl? |
Previous Top Next |
На форме стоит TreeView, PageControl и кнопка.
При смене страницы - меняется текущий узел, а при смене узла меняется страница.
Code: |
unit Unit1; {©Drkb v.3(2007): www.drkb.ru, ®Vit (Vitaly Nevzorov) - nevzorov@yahoo.com} 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. |
©Drkb::00622
Автор: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)
Взято с Vingrad.ru http://forum.vingrad.ru