使用ShellListView可以在单击、双击等事件中得到选中的item下所有item的数目和路径,如下面代码。但是用ShellTreeView不用ShellListView的话应该怎么做呢? for i:=1 to ShellListView1.Items.Count do
begin
aFile:=ShellListView1.Folders[i-1].PathName;
memo1.Text:='';
memo1.Text:=memo1.Text+aFile;
end;
begin
aFile:=ShellListView1.Folders[i-1].PathName;
memo1.Text:='';
memo1.Text:=memo1.Text+aFile;
end;
var i:integer;
begin
memo1.Clear;
for i:=0 to tv.Selected.Parent.Count-1 do
memo1.Lines.Add(ExtractFilePath(tv.Path)+tv.Selected.Parent.Item[i].Text);
end;
ShellListView1没有Parent和Path属性啊?
你的方法不是获取选定目录下面的子目录、文件,二是获取同级的,可以在该改吗?
var aFile,root:string;
begin
root:=shelltreeview1.root;
shelltreeview1.root:=ShellTreeView.SelectedFolder.Path;
shelltreeview1.ObjectTypes:=[otFolders,otNonFolders,otHidden];
shelltreeview1.fullExpand;
for i:=1 to ShelltreeView1.Items.Count do
begin
aFile:=ShellListView1.Folders[i].PathName;
memo1.Text:='';
memo1.Text:=memo1.Text+aFile;
end;
shelltreeview1.root:=root;
end;
有问题请发信息到我的E-mail:[email protected]
下面是我在DLPHI6下刚刚调试过的:
var aFile:string;
i:integer;
STview:TShelltreeview;
begin
STview:=Tshelltreeview.CreateParented(self.Handle);
memo1.Clear;
STview.root:=ShellTreeView1.SelectedFolder.PathName;
STview.ObjectTypes:=[otFolders,otNonFolders,otHidden];
STview.fullExpand;
for i:=1 to STview.Items.Count-1 do
begin
aFile:=STview.Folders[i].PathName;
memo1.Lines.Add(aFile);
end;
STview.Free;
end;
MEMO1中显示的结果是各文件夹和文件的路径(包括子文件夹)