掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TSaveDialogの初期ディレクトリを取得するには? (ID:39929)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Delphi 5, XP Pro です。 TSaveDialogの初期ディレクトリを取得する方法をご教示いただければと思いまして、質問させていただきました。 調べてみると、TSaveDialogはレジストリHKCUのExplorer\OpenSaveMRUのディレクトリを初期値にしているようです。 (おそらく履歴をとらないポリシーにするとまた異なる動作となるのでしょうけど未確認です) なので、この値をスマートに取得する方法?とも言えるかもしれませんが。 TSaveDialog.InitalDirは空のまま利用しています。 Filterには*.txt などのフィルタをあたえています。 そのせいか、TSaveDialogは、*.txt に関わるアプリケーションで最後に確定したディレクトリを最初に開いてくれるようです。 GetCurrentDirはアプリケーションのディレクトリを示していて、TSaveDialogがアプリケーション起動後に初めて開くディレクトリとは異なります。 TSaveDialog.Executeで一度でも確定すると、その後GetCurrentDirは、そのディレクトリを示すようになります。 なので、一度でも確定すれば GetCurrentDirで事足ります。 TSavDialogをインスタンス化する前に、その初期ディレクトリを知りたいのですが、レジストリにアクセスする以外にはないのでしょうか。 あるいは、アプリケーション側でそれらの値を記憶し、初期ディレクトリは制御するべきでしょうか? 今までは制御していたのですが、ふと疑問になりまして。 みなさん、どうされていますか? ちなみに、その初期ディレクトリの値は、アプリケーション固有のファイルの新規作成で、既存と重複のないファイル名を作るのに利用します。 "新規ファイル(1).txt" のような番号つきファイル名作るわけですが、TSaveDialog.Executeする前に、既存のファイル名を確認し、番号を進めて、TSaveDialog.Filename にあたえるという感じです。 よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.