Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РАБ_C++BUILDER.doc
Скачиваний:
100
Добавлен:
02.06.2015
Размер:
7.07 Mб
Скачать

Фрагменты диалогов – компоненты

DriveComboBox, DirectoryListBox,

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.

  1. Сохраните все и запустите приложение на выполнение. Ознакомьтесь с возможностями данного приложения во время выполнения.

Рассмотрение компонентов работы с файловой системой начнем с компонента 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без преобразования.

Продолжим проектирование приложения.

  1. Свяжите компоненты друг с другом: DriveComboBox1 свойством DirList с DirectoryListBox1, FilterComboBox1 свойством FileList с FileListBox1, DirectoryListBox1 свойством FileList с FileListBox1, DirectoryListBox1 свойством DirLabel с меткой Label4, FileListBox1 свойством FileEdit с Edit1.

  2. Сохраните все и запустите приложение на выполнение. Сравните выполнение данного приложения с выполнением приложения в п. 5.