【发布时间】:2013-10-30 08:57:25
【问题描述】:
我使用 FileCtrl.SelectDirectory 来显示“打开文件夹”对话框。但是,我对此不满意,因为它不允许用户输入从何处开始浏览的路径。 例如,如果用户已经在剪贴板中有路径,它应该能够将它输入到我的对话框中,而不是浪费 12 秒来导航(打开)许多文件夹,直到它到达那里。
我发现this 代码似乎与 FileCtrl.SelectDirectory 完全一样。我希望它能让我更多地配置对话框。没有。
那么,如何在 SelectDirectory 中显示用户可以输入路径的编辑框?
我现在的解决方案是我自己的对话框。它是使用 TDirectory 和 TListBox 从零开始构建的。非常便利。但是它看起来很陈旧,因为它使用了 Embarcadero 的文件管理控件(TDirectory、TListBox),而且我们都知道它们看起来有多枯燥。
明确一点:我想要 FileCtrl.SelectDirectory 之类的东西,但有一个精确的 TEdit 或一个用户可以在其中输入其路径(如果有的话)的 crumbar。 示例:
【问题讨论】:
-
您可以使用directory selection mode中的标准打开文件对话框。
-
嗨安德烈亚斯 - 我可以这样做,但它的行为很糟糕。 'c:' 分支位于面板下方(底部)的某处。如果我双击它开始浏览过程,打开的分支会在屏幕外或非常靠近底部打开,因此用户必须拖动滚动条才能使所有这些分支可见。最糟糕的是,每次我打开一个新的子分支时,整个东西都会向下移动(再次移出屏幕),因此用户必须再次滚动。
-
davea 在下面给出了正确答案,但不幸的是他删除了它。
-
在这里查看我对此的回答:stackoverflow.com/questions/7422689/…。虽然它没有编辑框,但也许它会给你一个起点?
-
我会立即寻求设计自己的文件夹选择器对话框的机会,因为我已经做了几次不同的事情。使用 Windows API 查询磁盘驱动器及其文件夹结构相当简单。我使用树视图来允许用户浏览目录,其中包含我自己定制的所有代码。我还没有把它变成一个真正的发布对话框。
标签: delphi