我在网上建立一个帖子给出了一个把某个制定文件夹下的所有文件夹都倒入一个
TTreeView来显示的函数,满心欢喜拷下去用了,结果总是报错,请大家指正。
被调函数
procedure TMainForm.DirToTreeView(Tree: TTreeView; Directory: string; Root: TTreeNode; IncludeFiles: Boolean);var
SearchRec : TSearchRec;
ItemTemp : TTreeNode;
begin with Tree.Items do
try
BeginUpdate;//这里总是抱错,为何。
if Directory[Length(Directory)] <> '\' then Directory := Directory + '\';
if FindFirst(Directory + '*.*', faDirectory, SearchRec) = 0 then
begin
repeat
if (SearchRec.Attr and faDirectory = faDirectory) and (SearchRec.Name[1] <> '.') then
begin
if (SearchRec.Attr and faDirectory > 0) then
Root := AddChild(Root, SearchRec.Name);
ItemTemp := Root.Parent;
DirToTreeView(Tree, Directory + SearchRec.Name, Root, IncludeFiles);
Root := ItemTemp;
end
else if IncludeFiles then
if SearchRec.Name[1] <> '.' then
AddChild(Root, SearchRec.Name);
until SysUtils.FindNext(SearchRec) <> 0; FindClose(SearchRec);
end;
finally
EndUpdate;
end;end;
主调函数
procedure TMainForm.OpenFolder1Click(Sender: TObject);
var
TreeView1 :TTreeView;
NodeRoot : TTreeNode;
begin
TreeView1 := TTreeView.Create(self);
CodeEdit1.Visible := false;
TreeView1.Visible := true;
DirToTreeView(TreeView1, 'e:\temp' ,NodeRoot, false);
end;
TTreeView来显示的函数,满心欢喜拷下去用了,结果总是报错,请大家指正。
被调函数
procedure TMainForm.DirToTreeView(Tree: TTreeView; Directory: string; Root: TTreeNode; IncludeFiles: Boolean);var
SearchRec : TSearchRec;
ItemTemp : TTreeNode;
begin with Tree.Items do
try
BeginUpdate;//这里总是抱错,为何。
if Directory[Length(Directory)] <> '\' then Directory := Directory + '\';
if FindFirst(Directory + '*.*', faDirectory, SearchRec) = 0 then
begin
repeat
if (SearchRec.Attr and faDirectory = faDirectory) and (SearchRec.Name[1] <> '.') then
begin
if (SearchRec.Attr and faDirectory > 0) then
Root := AddChild(Root, SearchRec.Name);
ItemTemp := Root.Parent;
DirToTreeView(Tree, Directory + SearchRec.Name, Root, IncludeFiles);
Root := ItemTemp;
end
else if IncludeFiles then
if SearchRec.Name[1] <> '.' then
AddChild(Root, SearchRec.Name);
until SysUtils.FindNext(SearchRec) <> 0; FindClose(SearchRec);
end;
finally
EndUpdate;
end;end;
主调函数
procedure TMainForm.OpenFolder1Click(Sender: TObject);
var
TreeView1 :TTreeView;
NodeRoot : TTreeNode;
begin
TreeView1 := TTreeView.Create(self);
CodeEdit1.Visible := false;
TreeView1.Visible := true;
DirToTreeView(TreeView1, 'e:\temp' ,NodeRoot, false);
end;
解决方案 »
- 感谢各位社员的厚爱, 老冯复礼了!
- 兄弟们。N久没有解决的问题!C/S网络加密问题,高手请进世界性难题呀!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 请问如何编程实现把几个jpg文件拼接成一个大的jpg文件
- 请教一个dbgrid鼠标双击事件问题
- 大哥,请进来Look Look,小弟有事想求
- DBGrid的显示问题,求教!在线等
- 高手帮忙!--一个关于对象操作的问题 ~~在线等,马上揭贴!~~~
- Delphi 烂书爆光
- button中的文字能否竖着显示啊?
- 现在搞分布式数据库开发是用DCOM,还是MTS;是用BDE,还是ADO?高手请进。(30分表示一点心意)
- 请教高手(MDI).急急急
- 关于TCanvas 的成员函数请教!!!
TreeView1.Parent := MainForm;//加上这一句
//////////////////
动态创建的控件要有Parent
TreeView1.Left := ;
TreeView1.Top := ;
TreeView1.Height := ;
TreeView1.Width := ;
begin
TreeView1 := TTreeView.Create(self);
TreeView1.Parent:=self;
TreeView1.Visible := true;
DirToTreeView(TreeView1, 'D:\temp' ,nil, false);
end;