关于treeview和数据库的问题?(75分)

  • 主题发起人 主题发起人 speednow
  • 开始时间 开始时间
S

speednow

Unregistered / Unconfirmed
GUEST, unregistred user!
1。怎么把treeview组件和数据库关联,并把数据库的字段名取到treeview的节点下?
 
procedure TForm1.Button1Click(Sender: TObject);
var
temp,i:integer;
begin
temp := table1.Fields.Count ;
for i:=0 to temp-1 do
begin
treeview1.Items.AddChild(nil,table1.Fields.FieldName) ;
end;
end;
 
若你想在点选某节点时移到相应的记录,还应做一些附加的处理,如
将其记录号或Key值放入treenode的Data中,若自己定义一个记录,
然后为每一TreeNode定制信息,你甚至可以把记录的所有内容与该
TreeNode的Data相连......
 
不行啊!别的组件属性有什么要求?
 
谢谢你们!yanghaijun,你好,能具体谈谈你的想法吗?
 
一个小小的范例,在各节点加入自定义的任何信息:
type
TNodeLevel = (STATE,PROVINCE,DW,BM,USER,GC,OTHER);

PMyNodeMsg = ^TMyNodeMsg; //要加入的信息记录
TMyNodeMsg = record
Level: TNodeLevel;
UserID: string;
GCID: string;
end;
...
//建立节点的信息
var
tempNodeMsg: PMyNodeMsg;
tempNode1: TTreeNode;
begin
...
New(tempNodeMsg);
tempNodeMsg.Level:=STATE;
tempNode1:=Detail.Items.AddChildObject(nil,sNode,tempNodeMsg);
^TreeView ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tempNode1.ImageIndex:=0;
tempNode1.SelectedIndex:=0;
...
end;

取信息:
procedure TZLJDMainForm.DetailChange(...)
begin
if PMyNodeMsg(Node.Data).Level=GC then
begin
CommonMsg.GCJDDJH:=PMyNodeMsg(Node.Data).GCID;
CommonMsg.GCMC:=Node.Text;
CommonMsg.CurrGCUserID:=PMyNodeMsg(Node.Data).UserID;
end
...
end;
 
后退
顶部