Delphi 7 - встроенный диалог открытия файла в форме - PullRequest
2 голосов
/ 07 ноября 2008

Кто-нибудь знает, возможно ли встроить диалог открытия файла в вашу форму?

У нас есть диалоговое окно с вкладками, и на одной из вкладок мы хотим, чтобы пользователь мог просматривать файл с той же функциональностью, что и стандартный диалог открытия, например. Поле со списком 'Look in', панель мест, список файлов оболочки, комбинированный файл с именем, дополнением имени и т. Д. И т. Д.

Я смотрел на воссоздание диалога с некоторыми сторонними компонентами, а именно Компоненты браузера Jam Shell

Таким образом я могу получить большую часть функциональности, но мне не хватает нескольких вещей, например, панель мест и автозаполнение имени файла \ offertion

Ответы [ 5 ]

5 голосов
/ 07 ноября 2008

Я не хочу сказать, что это невозможно, но учитывая количество уродливых хаков winapi, которые вы, вероятно, задействуете, я предлагаю "воссоздать диалог с некоторыми сторонними компонентами", но с VirtualShellTools .
VirtualShellTools можно загрузить из этого SVN-архива .
И вот страница проекта кода Google .

(По крайней мере, в нем есть поле со списком автозаполнения, хотя я не уверен, есть ли в нем строка мест). Надеюсь, это поможет.

2 голосов
/ 10 ноября 2008

Может быть, это Демо Control Shell может помочь вам.

Sample form

Редактировать: Банкомат на сайте, кажется, не работает. Машина Wayback помогает .
Вот последняя ссылка для скачивания для элементов управления, задействованных на машине обратного хода:

2 голосов
/ 10 ноября 2008

Просто небольшая заметка, довольно просто добавить автозаполняющий комбинированный список с SHAutoComplete.

Подробнее см. статью .

2 голосов
/ 07 ноября 2008

Панель мест не так сложно реализовать, используя компонент TListView с большими значками. Библиотека Raize Components также имеет некоторый источник, который поможет в этой области.

1 голос
/ 10 ноября 2008

Я бы создал его заново: это не займет много времени с компонентами VCL. Автозаполнение не сложно, и вы можете получить остальные данные, если вы достаточно долго просматриваете документы Windows.

Вы можете попытаться обмануть, обнаружив изменение вкладки и отобразив открытый диалог, как если бы это была вкладка. Вам нужно будет обнаружить, что пользователь щелкает за пределами диалогового окна (например, на другой вкладке), и предотвращать его закрытие, пока вы не захотите изменить вкладки.

Приветствия

...