TTreeView和TpageconTrol搭配使用的问题(30分)

N

nlk2002

Unregistered / Unconfirmed
GUEST, unregistred user!
我的项目中用TTreeView和TpageconTrol搭配使用,TreeView1中Items有23项,我想每选择一项Items,就弹出
pageconTrol中相应的TabSheet,例如:
if TreeView1.Items[1].Selected then
begin
TabSheet2.TabVisible:=True;
TabSheet2.Caption:=TreeView1.Items[1].Text;
end;
如果一次一次这样判断,可以想象我得判断23次。
请问可有更好的方法?请告知!!!
 
根据TREEVIEW的值动态创建TabSheet页
 
可以让Treeview的Items每一项和pageControl中Pages的每一项相对应
PageControl.Pages[TreeView.SelectItem.Index].TabVisible := True;
 
if TreeView1.Selected<>nil then
begin
TabSheet2.TabVisible:=True;
TabSheet2.Caption:=TreeView1.selected.Text;
end;
 
每一个TreeNode设置一个唯一的SelectedIndex,然后
procedure TForm1.TreeView1Click(Sender: TObject);
begin
PageControl1.ActivePageIndex := TreeView1.Selected.SelectedIndex;
end;
 
To gaisy,德菲龙:
根据两位的提示,我这样做:
procedure TfrmMain.TreeView1Click(Sender: TObject); //弹出TabSheet页
begin
if TreeView1.Selected.SelectedIndex = 0 then
exit
else
begin
HidePanel;//FormCreate时调用,用来隐去全部的Pages
PageControl2.ActivePageIndex:=TreeView1.Selected.SelectedIndex - 1;
PageControl2.Pages[TreeView1.Selected.SelectedIndex - 1].TabVisible := True;
PageControl2.Pages[TreeView1.Selected.SelectedIndex - 1].Caption:=TreeView1.Selected.Text;
end;
基本可以实现我所要的功能
但同时也有一个问题,当我在TTreeView1上单击左键,没有选择任何TTreeNode对象(也就是空白区),
PageControl区有抖动现象,为什么?
end
 
1.检查hidepanel代码。
2.我一般将.Tabvisible := true; .caption := treeview1.selected.text;等代码
放入tabsheetx.onshow里面,在tabsheetx.onhide事件里加入.tabvisible := false;。
 
>>但同时也有一个问题,当我在TTreeView1上单击左键,没有选择任何TTreeNode对象(也就是空白区),
>>PageControl区有抖动现象,为什么?
这样写:

procedure TfrmMain.TreeView1Click(Sender: TObject); //弹出TabSheet页
begin
if TreeView1.Selected<>nil then //--------加上这句试试!---------------------
if TreeView1.Selected.SelectedIndex = 0 then
exit
else
.......................
..................
 
将pagecontrol.pageindex的页号赋给对应的treeview1.items.data

treeview1.onclick
{
showmessage(treeview1.items[integer(treeview1.selected.data)].caption);
}
 
To:德菲龙
如果我不在TreeView.onClick中调用onHiede过程,则没有抖动现象,
这样一来,我的23个Pages全部会show出来.
如果调用,就会抖动.
不过还是非常感xie!!决定分配20分。
 
顶部