Votre question ne peut pas répondre en l'état, car elle manque de plusieurs détails cruciaux.
netdir
netdir
est une constante globale ou est-elle parfois hors de portée?
- Réglez-vous
netdir
sur quelque chose avant OpenDialog1.Execute
?
- La question sur le répertoire
GetDir
renvoie-t-elle (comme votre titre l'indique), ou sur la façon de faire en sorte que la boîte de dialogue ouverte se souvienne du dernier répertoire visité (comme le suggère le corps)?
Je suppose que 1) netdir
est une constante globale, que 2) vous ne définissez pas d'abord, et que 3) vous voulez la boîte de dialogue ouverte de se rappeler le dernier dossier visité. Ainsi, vous avez quelque chose comme
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.
Ensuite, la solution est de laisser Windows mémorisez le répertoire pour vous, c'est tout simplement faire
procedure TForm3.FormClick(Sender: TObject);
begin
OpenDialog1.Execute;
end;
seul! Mais pourquoi votre méthode ne fonctionne-t-elle pas? Eh bien, GetDir
ne retourne pas ce que vous voulez. Si vous avez besoin d'un contrôle explicite, faites
procedure TForm3.FormClick(Sender: TObject);
begin
OpenDialog1.InitialDir := netdir;
OpenDialog1.Execute;
netdir := ExtractFilePath(OpenDialog1.FileName)
end;