我进行了很好的搜索,看看是否有人问过这个问题,似乎没有。我发现这很奇怪,因为很容易从TShellTreeView.Path中提取路径,并且您获得了完全限定的路径。
但是,我尽力在编辑器中查看类本身的所有属性和方法-没有文档-以及唯一可能的字符串属性,我可以找到tlistitem的标题,而标题却是空白。同样,“ selected”属性也为空。
所以问题很简单,我如何提取在TShellListView组件中选择的任何文件的名称。另外,我确实有四个Shell组件已链接并可以工作,您可以选择一个驱动器,浏览目录结构,选择一个掩码并浏览到所需的文件。
TIA
安德鲁
最佳答案
如果您尚未激活MultiSelect
属性,请检查SelectedFolder.PathName
属性,否则,可以遍历Items并检查Selected
属性。
试试这个
function GetSelectedFiles(ShellListView : TShellListView) : TStringList;
var
Index : Integer;
begin
Result:=TStringList.Create;
if not ShellListView.MultiSelect then
Result.Add(ShellListView.SelectedFolder.PathName)
else
for Index := 0 to ShellListView.Items.Count-1 do
if ShellListView.Items[Index].Selected AND (not ShellListView.Folders[Index].IsFolder) then
Result.Add(ShellListView.Folders[Index].PathName);
end;