下面是我曾经用过的一个目录树,简单了一些,不过原理就是这样。你可以通过看 “AddChild”事件的 HELP 再引申一下: procedure TfrmMain.FormCreate(Sender: TObject); var TreeNode:TTreeNode; i:Integer; begin i:=1; with TreeView1.Items do begin Clear; TreeNode := Add(nil, '文档'); with ibdsDoc do begin First; while not eof do begin TreeView1.Items.AddChild(TreeNode,FieldByName('DCODE').AsString ); TreeView1.Items.Item[i].ImageIndex :=1; Inc(i); Next; end; end; TreeView1.FullExpand ; end; end;
若用的是SQL Server 在表中加入一个IMAGE类型的字段,(若用的是ORACLE则用BLOB) ,然后用ms:TMemorystream 将TTreeView里的内容 savetostream(ms) 读出是:TBlobField(Query1.fieldbyname('该字段名')).savetostream. 然后:ms.position:=0; TreeView1.loadfromstream(ms); ms.free;
procedure TfrmMain.FormCreate(Sender: TObject);
var TreeNode:TTreeNode;
i:Integer;
begin
i:=1;
with TreeView1.Items do
begin
Clear;
TreeNode := Add(nil, '文档');
with ibdsDoc do
begin
First;
while not eof do
begin
TreeView1.Items.AddChild(TreeNode,FieldByName('DCODE').AsString );
TreeView1.Items.Item[i].ImageIndex :=1;
Inc(i);
Next;
end;
end;
TreeView1.FullExpand ;
end;
end;
,然后用ms:TMemorystream 将TTreeView里的内容 savetostream(ms)
读出是:TBlobField(Query1.fieldbyname('该字段名')).savetostream.
然后:ms.position:=0;
TreeView1.loadfromstream(ms);
ms.free;