用的RZ控件,做文件目录模块,用RzShellTree中的SelectedFolder,显示出的Pathname总是滞后一个目录(选中一个文件夹后,RzFileListBOX显示出的是上个文件夹的内容)发现问题应该是RzShellTree1.SelectedFolder.PathName就已经错了,求论坛里的大神指点以下,感激不尽~~
以下是程序代码:
unit Path_Unit3;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, RzTabs, ExtCtrls, StdCtrls, FileCtrl, RzFilSys,
  RzTreeVw, RzShellCtrls;type
  TForm3 = class(TForm)
    Panel1: TPanel;
    RzPageControl1: TRzPageControl;
    TabSheet1: TRzTabSheet;
    TabSheet2: TRzTabSheet;
    RzShellTree1: TRzShellTree;
    RzFileListBox1: TRzFileListBox;
    procedure FormCreate(Sender: TObject);
    procedure RzShellTree1Change(Sender: TObject; Node: TTreeNode);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form3: TForm3;implementation{$R *.dfm}uses
    MainSystemUnit1, BaseInfo_Unit9;procedure TForm3.FormCreate(Sender: TObject);
begin
    Form3.Left:=190;
    Form3.Top:=143;
    //标题栏高度减小
    SetWindowLong(Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
    RzPageControl1.ActivePageIndex:=0;
    RzFileListBox1.Clear;
    RzFileListBox1.Directory:='';
end;
procedure TForm3.RzShellTree1Change(Sender: TObject; Node: TTreeNode);
begin
    if not DirectoryExists(RzShellTree1.SelectedFolder.PathName) then
    begin
       Exit;
    end;
    RzFileListBox1.Directory:='';
    RzFileListBox1.Clear;    RzFileListBox1.Directory:=RzShellTree1.SelectedFolder.PathName;
    RzFileListBox1.Update ;
    RzPageControl1.ActivePageIndex:=1;
end;end.

解决方案 »

  1.   

    楼主用RzShellTree.SelectedPathName就没问题,RzShellTree.SelectedFolder.PathName是返回上一级的目录,不对。
      

  2.   

    太感谢您了,我盲目看了字面上的意思~
    我想再问您下,如果想获取在RzFileListBox1.Directory里面选中的文件目录,有没有办法,获取RzShellTree1.SelectedPathName没问题,但是这个不能到文件,只能到文件夹~
      

  3.   

    嗯,我看了下,找到了RzFileListBox1.FileName,可以用,不用再麻烦看了,劳烦您了~~怎么结贴给分呢,这论坛真还没怎么用过,但是有您这样的人在真好~