我想讓我的SaveDialog記住上次使用的文件夾。我正在談論記住當前運行會話中的最後一個文件夾。我已經將路徑保存爲INI文件以用於「會話間」。如何讓tsavedialog記住上次使用的文件夾?
當我調用SaveDialog.Execute時,路徑被重置爲InitialDir。
我想讓我的SaveDialog記住上次使用的文件夾。我正在談論記住當前運行會話中的最後一個文件夾。我已經將路徑保存爲INI文件以用於「會話間」。如何讓tsavedialog記住上次使用的文件夾?
當我調用SaveDialog.Execute時,路徑被重置爲InitialDir。
您需要將initialDir設置爲新目錄,
if (SaveDialog1.Execute) then
begin
SaveDialog1.InitialDir := ExtractFilePath(SaveDialog1.FileName);
//Save your file
end;
如果你希望你的程序記住它被關閉後,經過,然後將新的目錄保存到註冊表中,一經打開它再讀一遍,或者使用保存在程序的%APPDATA%目錄中的配置文件。
當程序啓動時(在FormCreate或FormShow中)設置它,然後每次執行SaveDialog。在執行NEW目錄之前,不能對其進行設置,因爲SaveDialog1.FileName在執行後纔會被設置。 –
你的問題是如何將初始目錄設置爲最後選擇的目錄。不是如何在初始化時設置它。就像我在我的評論中提到的那樣,在FormCreate或FormShow中將其設置爲已知的良好目錄(例如我的文檔)。在SaveDialog1.Execute之前使用SaveDialog1.FileName不是你想要的... –
你不需要在布爾函數調用時使用括號,BTW。 –
當執行SaveDialog時,將InitialDir設置爲ExtractFilePath(SaveDialog1.FileName)。如果你希望你的程序在每次啓動時都記住,那麼你需要有一個記住的機制,比如使用註冊表或%APPDATA% –
中的配置文件你需要實現這個 –
@ DavidHeffernan-Thanks大衛。我雖然TSaveDialog已經有這樣的實現,我只需要打開它。 – Ampere