如何得到ShellListView改变时的全部文件名?
1.ShellTreeView和ShellListView同步之后,ShellTreeView的改变(单双击、+、-、键盘上下选择)可以在ShellTreeView看到,但想得到ShellTreeView每变化(最好能识别外部变化,即有文件在外部在程序外部改动也能随之变化,资源管理器就可以)就获取全部文件名输出,我用stringGrid。其实就是想stringGrid和ShellTreeView同步。
2.单击ShellTreeView空白的地方会出错,是否ShellTreeView有bug?请大家帮帮忙,继续有分!

解决方案 »

  1.   

    http://www.csdn.net/expert/topic/1050/1050065.xml?temp=.4923365
    看~
      

  2.   

    没有人会吗?就是要获取shelltreeview的所有变化,读出所有文件名!
      

  3.   

    看来做不到了,我现在只是想在外部改了文件名后shelltreeview1可以刷新以下,免得找不到文件出错。
    shelltreeview1.refresh应该怎么写?还缺少什么函数?
      

  4.   

    procedure TForm1.ShellTreeView1Change(Sender: TObject; Node: TTreeNode);
    var
     myStr:string;
     i:integer;
    begin
     myStr:='';
     for i:=0 to ShellListView1.Items.Count-1 do
      myStr:=myStr+ShellListView1.Folders[i].PathName ;
     memo1.Text :=myStr;
    end;
      

  5.   

    只要将ShellListView1和ShellTreeView1的AutoRefresh属性都设为true,在有外部改变发生时,就可以自动刷新显示(我试过,很好用)
      

  6.   

    我用的是Delphi6,单击ShellTreeView的空白地方没有错误发生。
      

  7.   

    to oracle_lover(数据库情人):
    ShellListView1和ShellTreeView1的AutoRefresh属性都设为true之后来回点击一些目录就会出错;只把ShellTreeView1的AutoRefresh属性都设为true也可以做到自动刷新,不过还会出错,只是小些机会;两个都不设AutoRefresh就不会出错!
    我从新建一个unit只放着两个vcl都会出错,一定是他们的bug!
      

  8.   

    经多方面测试以及borland公司证实,TShellTreeView、TShellListViewd在非英文windows系统运行确实会出错:
    他们的autorefresh设成ture,运行的时候点击一些目录会的时候会有内存调用出错!具体原因还未清楚。有那微笑地给我介绍一些类似TShellTreeView、TShellListViewd国内的vcl?
    当然要能在非英文windows系统顺利运行的!谢谢!