新しい Windows バージョンでは (少なくとも Windows 7 ではそうですが、Vista でも発生すると信じるに足る理由があります) IFileDialog
(したがってIFileOpenDialog
、およびIFileSaveDialog
) ファイル タイプの説明にワイルドカード パターンが見つからない場合は、ワイルドカード パターンが自動的に追加されます。
これは、ガイドラインの一貫性と施行を強化しながら、使用を容易にする優れた機能です。しかし、それが望ましくない場合もあります。受け入れられた拡張子が多数ある場合 (「すべての画像」など)、対応するコンボボックスのエントリが長すぎます。最悪のことは、これが文書化されておらず、 CodeProject の記事でそれに関するメモ (私の観察結果の確認) しか見つけられなかったことです。
Windows 7 では、下位互換性チェック ( CodeProject の記事で言及されているように) はそれほど強力ではなく、説明に手動でパターンを追加すると自動追加が妨げられるようです。これは、別の質問への回答ですでに指摘されています。しかし、このソリューションは理想とはほど遠いものです。(以前の質問はタグ付けと説明が不十分だったと思われるため、同じ質問を再度行うことにしました: (1) StackOverflow によって提案された同様の質問を見て最初に見つけました。Google での以前のクエリでは見つかりませんでした。(2) )問題は一般的なものであり、Delphi に限定されません。)
これを防ぐ方法は?
IFileDialog
それが提供するカスタマイズが必要なため、使用する必要があることに注意してください。GetOpenFileName
(したがって、 andによって生成されるダイアログへの切り替えGetSaveFileName
はオプションではありません。)