2014-06-24 35 views
0

我想讓我的SaveDialog記住上次使用的文件夾。我正在談論記住當前運行會話中的最後一個文件夾。我已經將路徑保存爲INI文件以用於「會話間」。如何讓tsavedialog記住上次使用的文件夾?

當我調用SaveDialog.Execute時,路徑被重置爲InitialDir。

+0

當執行SaveDialog時,將InitialDir設置爲ExtractFilePath(SaveDialog1.FileName)。如果你希望你的程序在每次啓動時都記住,那麼你需要有一個記住的機制,比如使用註冊表或%APPDATA% –

+2

中的配置文件你需要實現這個 –

+0

@ DavidHeffernan-Thanks大衛。我雖然TSaveDialog已經有這樣的實現,我只需要打開它。 – Ampere

回答

2

您需要將initialDir設置爲新目錄,

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

如果你希望你的程序記住它被關閉後,經過,然後將新的目錄保存到註冊表中,一經打開它再讀一遍,或者使用保存在程序的%APPDATA%目錄中的配置文件。

+0

當程序啓動時(在FormCreate或FormShow中)設置它,然後每次執行SaveDialog。在執行NEW目錄之前,不能對其進行設置,因爲SaveDialog1.FileName在執行後纔會被設置。 –

+1

你的問題是如何將初始目錄設置爲最後選擇的目錄。不是如何在初始化時設置它。就像我在我的評論中提到的那樣,在FormCreate或FormShow中將其設置爲已知的良好目錄(例如我的文檔)。在SaveDialog1.Execute之前使用SaveDialog1.FileName不是你想要的... –

+1

你不需要在布爾函數調用時使用括號,BTW。 –

相關問題