Vcl.FileCtrl 関数SelectDirectory ( ShBrowseForFolder Win32 API の薄いラッパー) で非常に奇妙な問題が発生しています。
次のコードを使用して、ユーザーがファイルまたはフォルダーを参照できるようにしています。
if SelectDirectory('Sélectionnez un élément à ajouter :', '', S, [sdNewFolder,
sdShowFiles, sdNewUI]) then
このコードを実行すると、[フォルダーの参照] ダイアログが正しく表示され、ユーザーのデスクトップの内容が表示されます。
しかし、デスクトップ フォルダ内のアイテムの数が非常に多い場合 (私のコンピュータでは、約 100 個のデスクトップ アイコンを使用することで問題を再現できます)、同じ呼び出しでまったく異なる表示が生成されます。
この場合、デスクトップ アイテムは表示されなくなります。ホーム フォルダしか閲覧できず、「マイ コンピュータ」アイコンを失ったため、このディレクトリ以外のファイル/フォルダを選択できません。
私はここで欠けているものを探しています。正しく表示するために、ルート アイテムが持つことができるサブアイテムの数に制限はありますか? 多くのデスクトップ アイコンを持つことは確かに良い習慣ではありませんが、私の知る限り、このダイアログが正常に動作するのを妨げるべきではありません。Delphi ラッパーに何か問題があるのか 、それとも MSDN で見られなかった API の制限なのかはわかりません...
どんなヒントでも大歓迎です!