Компонент delphi OpenDialog не визуальный компонент предназначенный для поддержки операции открытия файлов способный работать с любыми типами файлов. При обращении к этому компоненту вызывается стандартное диалоговое окно открытия файла.
Типы искомых файлов задаются в свойстве Filter. В процессе проектирования это свойство проще всего задать с помощью редактора фильтров, который вызывается при нажатии кнопки с многоточием возле этого свойства в инспекторе объектов. При этом открывается окно редактора вид, которого представлен на рисунке 1. В его левой панели Filter Name вы записываете тот текст, который увидит пользователь в выпадающем списке «тип файла» диалога. А в правой панели Filter записывается разделенные точками с запятой шаблоны фильтра.
Для записи этого программным путем просто вписываем в нашу программу код представленный ниже.
1 | OpenDialog1.Filter:=’текстовые|*.txt’ |
Если понадобится программным образом описать несколько строк фильтра, то отделяйте строку от строки все тем же разделителем – вертикальной чертой(|)
1 | OpenDialog1.Filter:=’текстовые|*.txt|все файлы|*.*’ |
Свойство FilterIndex позволяет использовать по умолчанию один из фильтров, если в вашей программе их несколько.
Для определения имени папки, открываемой в момент первого запуска диалога, воспользуйтесь свойством InitialDir при повторном открытии выбор каталога зависит от флага ofNoChangeDir в свойстве Options диалогового окна. Все флаги этого свойства можно увидеть в таблице ниже.
ofReadOnly | Открывает окно в режиме «только для чтения» |
ofHideReadOnly | Скрывает флажок ReadOnly |
ofOverwritePrompt | Играет роль в диалогах записи файлов, запрашивает разрешение на перезапись при совпадении имени. |
ofNoChangeDir | Если флаг установлен, то при повторных запусках диалога он открывает папку определенную в свойстве InitialDir. Иначе будет открыт каталог с которым велась работа в последний раз. |
ofShowHelp | Дополняет диалог кнопкой помощи. |
ofNoValidate | Отключает контроль ввода недопустимого символа в имя файла |
OfAllowMultiSelect | Допускает одновременный выбор нескольких файлов |
ofExtensionDifferent | Наличие флага обычно контролируется программистом во время выполнения приложения. Он автоматически устанавливается приложениям в случае, когда расширение выбранного файла отличается от заданного в свойстве DefaultExt |
ofPathMustExist | Вызывает сообщение об ошибке, если пользователь указал неверный путь к файлу. |
ofFileMustExist | Вызывает сообщение об ошибке, если пользователь указал имя не существующего файла |
ofCreatePrompt | Запросит подтверждения на создание несуществующего файла. |
ofShareAwere | Разрешает совместный доступ к одному и тому же файлу |
ofNoReadOnlyReturn | Инициализирует сообщение об ошибке при попытке обратиться к файлу с атрибутом «только для чтения». |
ofNoTestFileCreate | Опция применяется при работе с разделяемым сетевым ресурсом в котором пользователь обладает правом создания новых файлов, но не может модифицировать существующие. |
ofNoNetworkButton | Скрывает кнопку доступа к сетевым ресурсам. |
ofNoLongNames | Показывает файлы с форматом имени. |
ofOldStyleDialog | Флаг обратной совместимости, создает диалоговое окно старого стиля. |
ofNoDereferenceLinks | Определяет порядок взаимодействия с ярлыками файлов. |
ofEnableIncludeNotify | Работает с Windows2000 и более поздними версиями. |
ofEnableSizing | Разрешает изменять размеры диалогового окна |
Небольшой пример для вызова диалога открытия
1 2 3 4 5 6 7 | procedure TForm2.Button2Click(Sender: TObject); begin if opendialog2.Execute then begin memo2.Lines.LoadFromFile(opendialog2.FileName); end; end; |