我在使用 Vcl.FileCtrl 函数 SelectDirectory(它是 ShBrowseForFolder Win32 API 的一个薄包装器)时遇到了一个非常奇怪 的问题。
我使用以下代码允许用户浏览文件或文件夹:
if SelectDirectory('Sélectionnez un élément à ajouter :', '', S, [sdNewFolder,
sdShowFiles, sdNewUI]) then
执行此代码时,“浏览文件夹”对话框正确显示,显示用户桌面的内容:
但是,当桌面文件夹中的项目数量过多时(在我的计算机上,我可以通过大约 100 个桌面图标来重现该问题),相同的调用会产生完全不同的显示:
在这种情况下,桌面项目不再显示。我只被允许浏览我的主文件夹,并且由于我丢失了“我的电脑”图标,我无法选择此目录之外的文件/文件夹。
我正在寻找我在这里缺少的东西。为了正确显示,根项目可以拥有的子项目数量是否有限制?拥有很多桌面图标当然不是一个好习惯,但据我所知,这不应阻止此对话框正常运行。我不确定 Delphi 包装器是否有问题,或者这是否是我在 MSDN 上没有看到的 API 的限制......
任何提示表示赞赏!