RzShellTree中的SelectedFolder展示总是滞后一次
RzShellTree中的SelectedFolder显示总是滞后一次
用的RZ控件,做文件目录模块,用RzShellTree中的SelectedFolder,显示出的Pathname总是滞后一个目录(选中一个文件夹后,RzFileListBOX显示出的是上个文件夹的内容)发现问题应该是RzShellTree1.SelectedFolder.PathName就已经错了,求论坛里的大神指点以下,感激不尽~~
以下是程序代码:
unit Path_Unit3;
interface
uses
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.
------解决方案--------------------
楼主用RzShellTree.SelectedPathName就没问题,RzShellTree.SelectedFolder.PathName是返回上一级的目录,不对。
用的RZ控件,做文件目录模块,用RzShellTree中的SelectedFolder,显示出的Pathname总是滞后一个目录(选中一个文件夹后,RzFileListBOX显示出的是上个文件夹的内容)发现问题应该是RzShellTree1.SelectedFolder.PathName就已经错了,求论坛里的大神指点以下,感激不尽~~
以下是程序代码:
unit Path_Unit3;
interface
uses
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.
------解决方案--------------------
楼主用RzShellTree.SelectedPathName就没问题,RzShellTree.SelectedFolder.PathName是返回上一级的目录,不对。