Лекция: Компонент Окно выбора файла (TOpenDialog)
Компонент предназначен для выбора файла с целью последующего открытия.
Свойства класса TOpenDialog:
| Свойство | Назначение |
| DefaultExt | Расширение имени, используемое по умолчанию. Добавляется в конец выбранного пользователем имени файла, если расширение не указано явно |
| FileName | Выбранное пользователем имя файла вместе с полным путем поиска |
| Files | Список выбранных имен файлов. В свойстве Options должен быть включен флажок ofAllowMultiSelect |
| Filter | Набор масок, в соответствии с которыми отбираются имена файлов для отображения в диалоговом окне. Каждая маска состоит из двух частей: названия и шаблона, – разделенных символом |. Одному названию могут соответствовать несколько шаблонов. Маски отделяются друг от друга символом | |
| FilterIndex | Номер текущей маски. Нумерация начинается с 1 |
| HistoryList | Список ранее выбранных файлов (тип TStrings) |
| InitialDir | Текущий каталог, содержимое которого отображается при первом открытии диалогового окна |
| Options | Набор флажков, определяющих работу окна выбора файлов |
| Title | Заголовок диалогового окна |
Среди методов этого класса следует отметить функцию
functionGetStaticRect: TRect;
Она возвращает координаты прямоугольной области диалогового окна (часть клиентской области), зарезервированной для нужд разработчика (например для отображения содержимого текущего выбранного файла).
События класса TOpenDialog:
| Событие | Условие генерации |
| OnCanClose | Пользователь пытается закрыть диалоговое окно. Обработчик этого события позволяет проконтролировать правильность выбранного или введенного в соответствующее поле окна имени файла и разрешить или запретить закрытие |
| OnFolderChange | Пользователь переключился в другой каталог |
| OnIncludeItem | К текущему списку файлов в диалоговом окне будет добавлено новое имя. Обработчик данного события дает возможность отбирать допустимые имена по алгоритму, определяемому программистом |
| OnSelectionChange | Пользователь выбрал новое имя файла в диалоговом окне |
| OnTypeChange | Пользователь выбрал новую маску файлов (свойство Filter) |
В следующем примере при щелчке на кнопке отображается диалоговое окно выбора имени файла (объект OpenDialogl), которое имеет заголовок Выбор нужного файла, а в списке отображаются все файлы, имеющие расширение .PAS. Это обеспечивается присвоением свойству FilterIndex значения 2.
procedureTForml.ButtonlClick(Sender: TObject);
Begin
OpenDialogl.Filter := 'Все файлы (*. *) |*.*|Файлы Паскаля
(*.pas)|*.PAS';
OpenDialogl.Title := 'Выбор нужного файла';
OpenDialogl.FilterIndex := 2;
if OpenDialogl.Execute then
Begin
AssignFile(F, OpenDialogl.FileName);
// работа с файлом F
end;end;