我是学习DELPHI的新手,下面是几个关于TREEVIEW的问题?
1.怎么才能使点击TREEVIEW的节点时打开另一个窗体(因为我是用TREEVIEW实现功能导航菜单的)
2.怎么使TREEVIEW能够读取数据库中的表而自动生成树,添加,删除,修改节点的时候只要编辑数据库中相应的值就可以了。
3.当展开一个父节点时,父节点上的图标变成打开的书本,关闭一个父节点时就变成一个关闭的书本。而当一个节点没有子节点时就是一个其它的图标。分不够的话我会继续加分的,谢谢!!
1.怎么才能使点击TREEVIEW的节点时打开另一个窗体(因为我是用TREEVIEW实现功能导航菜单的)
2.怎么使TREEVIEW能够读取数据库中的表而自动生成树,添加,删除,修改节点的时候只要编辑数据库中相应的值就可以了。
3.当展开一个父节点时,父节点上的图标变成打开的书本,关闭一个父节点时就变成一个关闭的书本。而当一个节点没有子节点时就是一个其它的图标。分不够的话我会继续加分的,谢谢!!
2.TreeView1.Items.AddFirst()增加第一个节点
TreeView1.Items.AddChild()增加孩子节点
3.根据标志判断 加入不同的图标。
http://www.yesky.com/20000626/85987.shtml
http://community.csdn.net/Expert/Forum.asp
2.增加第一个节点node:=add(nil,table1.fieldbyname('fields1').AsString );
增加这个节点的孩子treeview1.Items.addchild(node,table1.fieldbyname('field2').AsString );
3.增加一个TImageList控件ImageList1,设置TREEVIEW的Images属性为ImageList1。
procedure TFrmMain.RunForm;
type
TProc = function (Ahandle :THandle;Owner: TComponent):TForm;stdcall;
var
lProc :TProc;
begin
if Assigned(lTreeDataSet) then
begin
with lTreeDataSet do
begin
if FieldByName('FunObj').AsString<>'' then
begin
if Assigned(lPanelForm) then
FreeAndNil(lPanelForm);
lDllHandle := LoadLibrary(PChar(FieldByName('FunPath').AsString));
if lDllHandle<>0 then
@lProc := GetProcAddress(lDllHandle,PChar(FieldByName('FunObj').AsString));
if not (@lProc=nil) then
lPanelForm := lProc(Application.Handle,PnlForm);
lPanelForm.Align := alClient;
lPanelForm.BorderStyle := bsNone;
Windows.SetParent(lPanelForm.Handle,PnlForm.Handle);
lPanelForm.Show;
end
else
ShowAD;
end;
end;
end;procedure TFrmMain.FunTreeClick(Sender: TObject);
begin
RunForm;
end;