据我看至少有ShellTreeView1.SelectedFolder属性,仔细看看嘛

解决方案 »

  1.   

    关键是TShellListView的选中的文件、目录的名字,如何得知?
      

  2.   

    D6我觉得还是在某方面还不如D5方便。比如D5打开前几次写过的程序很方便,而D6竟没有这功能了。更惨的是,在D6中,我用在D5中开发的程序因为路径问题,竟然打不开那个窗口,不让调试,一出错就退出整个程序!!!
      

  3.   

    to 严黎斌(): 这些信息够吗?
    procedure TForm1.Button1Click(Sender: TObject);
    var
      ShellFolder: TShellFolder;
    begin
      ShowMessage(ShellTreeView1.Selected.Text);
      ShellFolder := ShellTreeView1.SelectedFolder;
      ShowMessage(ShellFolder.DisplayName);
      ShowMessage(ShellFolder.PathName);
    end;
      

  4.   

    to C_Sharp(...) :
    谢谢。但是,我最需要的是TShellListview中选中的文件或文件夹的目录和文件名。
      

  5.   

    ShellListView1.Selected.Caption,这个就是文件名
    它同样有SelectedFolder属性,你就可以知道其目录名和路径名了对计算立法局类毒素对计算旅客旅客从来第三类毒素立法局昆仑洒的经费拉萨
      

  6.   

    to C_Sharp(...) :
    如果真的这么简单,那么我也不用上这来问了。
    实际情况是,ShellListView1.Selected.Caption返回的一直是空字符串。而ShellListView1.Selected.SubItems倒是有相应的内容的。真的很奇怪。
    请你自己试一试,好吗?
      

  7.   


    procedure TForm1.ShellListView1Change(Sender: TObject; Item: TListItem;
      Change: TItemChange);
    var
      LVItem:TLVItem;
      s:array[0..255] of char;
    begin
      FillChar(LVItem,SizeOf(LVItem),0);
      LVItem.mask := LVIF_TEXT;
      LVItem.cchTextMax := 255;
      LVItem.pszText := @s;  //奇怪,一调用这个API后ITEM.CAPTION就有值了,不知是不是TShellListView的Bug
      ListView_GetItemText(ShellListView1.Handle,LVM_GETITEMTEXT,ShellListView1.ItemIndex,Integer(@LVItem));
      Caption := LVItem.pszText;  if Item <> nil then
        Caption := caption +' |'+Item.Caption
      else
        Caption :=Caption +' |nil'end;
      

  8.   

    好像根文件有关的所有信息都保存在其Folder属性中,
    你用ShellListView1.SelectedFolder就可以得到了.
    因为有中ViewStyle是vsReport,所以SubItem属性存储的就是这时要表现的信息
      

  9.   

    to CaiDaoLi():
    你提供的ListView_GetItemText很有用。我已经能够取得caption了。
    补充说明,无需申明复杂的LVItem:TLVItem;
    也是可以的,直接用简单变量填入到ListView_GetItemText也行。
    另外,调用这个函数,必须 uses commctrl单元。但是,问题还是没有解决,如何得到文件所在的路径全名?
    用ShellTreeView1.SelectedFolder?请大家再帮忙试一下吧。有些问题不试是不知道的,不能想当然。
    比如,文件名想当然是caption,但实际是空的。
    路径名想当然可能是SelectedFolder.PathName,但实际上呢 ^_^
      

  10.   

    我试了试用ShellTreeView1.SelectedFolder.DisplayName可以取出当前选中的文件名,
    用ShellTreeView1.SelectedFolder.Parent.DisplayName可以取出文件所在的路径全名.