FilterComboBox, FileListBox, CDirectoryOutline
К компонентам работы с файловой системой, представляющим собой фрагменты диалогов, относятся выпадающие списки дисков (драйверов) – DriveComboBox и фильтров (масок) файлов – FilterComboBox, списки каталогов – DirectoryListBox и файлов – FileListBox, дерево каталогов – CDirectoryOutline. Эти компоненты работы с файловой системой облегчают пользователю создание собственных диалоговых окон.
Начните новое приложение.
1.В свойство Caption формы впишите ФРАГМЕНТЫ ДИАЛОГОВ.
2.На форме слева, сверху вниз, разместите метку Label1 с надписью FileListBox, окно редактирования Edit1, компонент FileListBox1, метку Label2 с надписью FilterComboBoxи компонент FilterComboBox1. Компоненты Edit1, FileListBox1и FilterComboBox1установите по ширине одинаковыми.
3.По середине формы, сверху вниз, разместите метку Label3 с надписью DirectoryListBox, метку Label4 с надписью путь к текущему каталогу, компонент DirectoryListBox1, метку Label5 с надписью DriveComboBoxи компонент DriveComboBox1. Компоненты DirectoryListBox1и DriveComboBox1 установите по ширине одинаковыми.
4.В правой части формы разместите метку Label6 с надписью CDirectoryOutlineи компонент CDirectoryOutline1.
Для надписей используйте полужирный шрифт размером 12.
5.Сохраните все и запустите приложение на выполнение. Ознакомьтесь с возможностями данного приложения во время выполнения.
Рассмотрение компонентов работы с файловой системой начнем с компонента DriveComboBox –выпадающего списка дисков (драйверов). При размещении на форме этот компонент автоматически отображает список имеющихся на компьютере дисков. Во время выполнения приложения имя выбранного пользователем диска можно прочитать в свойстве Drive, а строку, содержащуюся в окне списка – в свойстве Text. Свойство TextCase задает регистр отображения: tcUpperCase– в верхнем регистре, tcLowerCase –в нижнем.
Во время проектирования компонент DriveComboBox через его свойство DirListможно связать с компонентом DirectoryListBox –списком каталогов. Программно связь этих двух компонентов обеспечивается включением в обработчик события OnChange компонента DriveComboBox оператора
DirectoryListBox1->Drive = DriveComboBox1->Drive;
Этот оператор задает имя диска, выбранное пользователем в компоненте DriveComboBox1, свойству Drive списка каталогов DirectoryListBox1.
Аналогичным оператором можно обеспечить связь компонента DriveComboBox1с деревом каталогов и файлов в компоненте CDirectoryOutline1:
CDirectoryOutline1->Drive = DriveComboBox1->Drive;
Перейдем к рассмотрению выпадающего списка фильтров – компонента FilterComboBox1. Его основное свойство – Filter, которое задается так же, как описано выше. Доступ к отдельным частям фильтра – тексту и маске, осуществляется через свойства Text и Mask соответственно. Связь компонента FilterComboBox1со списком файлов FileListBox1 устанавливается через свойство FileListкомпонента FilterComboBox1.
Компонент DirectoryListBox1 отображает список каталогов диска, заданного свойством Drive. Значение свойства Drive можно установить программно во время выполнения. Связь этого свойства с выбранным пользователем диском в компоненте DriveComboBox1 устанавливается или программно, или во время проектирования с помощью свойства DirList компонента DriveComboBox1. Это свойство может указывать на компонент DirectoryListBox1. Связь списка каталогов, т.е. компонента DirectoryListBox1 с компонентом FileListBox1, отображающим список файлов, осуществляется с помощью свойства FileListкомпонентаDirectoryListBox1. Можно также использовать результаты выбора пользователем каталога, читая свойство Directory в обработчике события OnChange. С компонентом DirectoryListBox1 можно также связать метку типа Label. В этой метке будет отображаться путь к текущему каталогу. Если путь не умещается в метке, то он автоматически отображается в сокращенном виде с помощью функции MinimizeName. Метка, отображающая каталог, указывается в свойстве DirLabelкомпонентаDirectoryListBox1.
Список файлов содержится в компоненте FileListBox1. Его свойства Drive, Directory и Mask определяют соответственно диск, каталог и маску файлов. Эти свойства можно устанавливать программно или связывая указанным выше способом компонент FileListBox1 с компонентами DriveComboBox1, DirectoryListBox1 и FilterComboBox1. Свойство FileType позволяет включать в список не все файлы, а только те, которые имеют соответствующие атрибуты. Свойство FileType представляет собой множество, указывающее типы включаемых файлов. Элементы этого множества могут иметь значения: ftReadOnly – только для чтения, ftHidden–невидимые,ftSystem –системные,ftVolumeID –обозначения дисков, ftDirectory –каталоги,ftArchive –архивные,ftNormal –не имеющие особых атрибутов.
Свойство ShowGlyphs разрешает или исключает показ пиктограмм файлов. Свойство MultiSelect разрешает выбор нескольких файлов.
Основное свойство, в котором можно прочитать имя выбранного пользователем файла – FileName.
Со списком файлов может быть связано окно редактирования Edit1, в котором отображается выбранный файл. На этот список указывает устанавливаемое во время проектирования свойство FileEditкомпонента FileListBox1.
Рассмотрение закончим компонентом CDirectoryOutline1, который содержит дерево каталогов. Значение диска устанавливается свойством Drive. Текущий каталог, выбранный пользователем, можно прочитать в свойстве Directory. Свойство TextCase определяет стиль отображения имен каталогов: tcLowerCase –преобразование к нижнему регистру,tcUpperCase–к верхнему, tcAsIs –без преобразования.
Продолжим проектирование приложения.
6.Свяжите компоненты друг с другом: DriveComboBox1 свойством DirListс DirectoryListBox1, FilterComboBox1свойством FileList с FileListBox1, DirectoryListBox1свойством FileListс FileListBox1, DirectoryListBox1свойством DirLabelсметкой Label4, FileListBox1свойством FileEdit с Edit1.
7.Сохраните все и запустите приложение на выполнение. Сравните выполнение данного приложения с выполнением приложения в п. 5.