あなたの質問には、いくつかの重要な詳細が欠けているため、そのままでは答えられません。
- グローバル定数ですか
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;
1人!しかし、なぜあなたの方法はうまくいかないのでしょうか? まあ、GetDir
あなたが望むものを返しません。明示的な制御が必要な場合は、
procedure TForm3.FormClick(Sender: TObject);
begin
OpenDialog1.InitialDir := netdir;
OpenDialog1.Execute;
netdir := ExtractFilePath(OpenDialog1.FileName)
end;