Delphi 如何让tsavedialog记住上次使用的文件夹?

Delphi 如何让tsavedialog记住上次使用的文件夹?,delphi,Delphi,我想让我的SaveDialog记住上次使用的文件夹。我说的是记住当前运行会话中的最后一个文件夹。我已经在为“会话间”保存INI文件的路径 当我调用SaveDialog.Execute时,路径被重置为InitialDir。您需要将InitialDir设置为新目录 if (SaveDialog1.Execute) then begin SaveDialog1.InitialDir := ExtractFilePath(SaveDialog1.FileNam

我想让我的SaveDialog记住上次使用的文件夹。我说的是记住当前运行会话中的最后一个文件夹。我已经在为“会话间”保存INI文件的路径


当我调用SaveDialog.Execute时,路径被重置为InitialDir。

您需要将InitialDir设置为新目录

      if  (SaveDialog1.Execute) then
      begin
         SaveDialog1.InitialDir := ExtractFilePath(SaveDialog1.FileName);
         //Save your file
      end;

如果希望程序在关闭后仍能记住,请将新目录保存到注册表中,再次打开时,读取它,或者使用保存在程序%APPDATA%目录中的配置文件。

执行SaveDialog时,将InitialDir设置为ExtractFilePath(SaveDialog1.FileName)。如果希望程序在每次启动时都能记住,则需要有一种记住的机制,例如使用注册表或%APPDATA%中的confif文件,这由您自己来实现this@DavidHeffernan-谢谢你,大卫。我想TSaveDialog已经实现了类似的功能,我只需要打开它。@salter:操作系统会根据每个应用程序跟踪最后使用的文件夹。
OPENFILENAME::lpstrInitialDir
字段解释了用于确定何时使用存储文件夹的算法。请在程序启动时(在FormCreate或FormShow中)进行设置,然后在每次执行SaveDialog时进行设置。您不能在使用新目录执行之前设置它,因为SaveDialog1.FileName在执行之后才被设置。您的问题是如何将初始目录设置为最后选定的目录。不是如何在初始化时设置它。正如我在评论中提到的,在FormCreate或FormShow中将其设置为已知的良好目录(例如我的文档)。在SaveDialog1.Execute之前使用SaveDialog1.FileName不是您想要的…顺便说一句,布尔函数调用不需要括号。