您的问题无法按原样回答,因为它缺少几个关键细节。
- 是
netdir
全局常量,还是时不时超出范围?
- 你
netdir
之前设置的东西OpenDialog1.Execute
吗?
- 是关于
GetDir
返回什么目录的问题(正如你的标题所暗示的那样),还是关于如何让打开的对话框记住上次访问的目录(正如正文所暗示的那样)?
我将假设 1)netdir
是一个全局常量,2) 您最初没有设置它,并且 3) 您希望打开的对话框记住上次访问的文件夹。因此你有类似的东西
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm3 = class(TForm)
OpenDialog1: TOpenDialog;
procedure FormClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
var
netdir: string;
implementation
{$R *.dfm}
procedure TForm3.FormClick(Sender: TObject);
begin
OpenDialog1.InitialDir := netdir;
OpenDialog1.Execute;
GetDir(0, netdir);
end;
end.
那么解决方法就是让windows为你记住目录,也就是干脆做
procedure TForm3.FormClick(Sender: TObject);
begin
OpenDialog1.Execute;
end;
独自的!但是为什么你的方法不起作用?好吧,GetDir
不返回你想要的。如果您需要显式控制,请执行
procedure TForm3.FormClick(Sender: TObject);
begin
OpenDialog1.InitialDir := netdir;
OpenDialog1.Execute;
netdir := ExtractFilePath(OpenDialog1.FileName)
end;