Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК ПП1 (C++ БД).doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
5.01 Mб
Скачать

4.3. Компоненты навигаторов.

Помимо законченных диалогов работы с файлами, в C++Builder имеется ряд компонентов, представляющих собой фрагменты диалогов:

  • выпадающие списки дисков DriveComboBox,

  • списки каталогов  DirectoryListBox,

  • списки файлов  FileListBox и др.

Внешний вид этих компонентов вы можете увидеть на рис. 52. Компоненты работы с файловой системой облегчают создание собственных вариантов навигаторов. Например, вы можете захотеть включить в диалоговое окно отображение каких-то характеристик файлов (размера, даты создания и т.п.) или оперативный просмотр содержания текстовых файлов. Тогда вам очень пригодятся готовые компоненты работы с файлами. Все они расположены на странице Win 3.1 палитры компонентов. Это значит, что они не рекомендуются для 32-разрядных приложений. Но никто не запрещает вам все-таки использовать и остальные компоненты в любых приложениях C++ Builder. И, наконец, если уж вы хотите четко следовать этой рекомендации и не использовать упомянутые фрагменты диалогов в 32-разрядных приложениях, вы можете разработать свои аналогичные компоненты на базе обычного компонента ComboBox.

Рис. 52. Собственный навигатор

Начнем рассмотрение компонентов работы с файловой системой с компонента DriveComboBox  – выпадающего списка дисков. При размещении на форме этот компонент автоматически отображает список имеющихся на компьютере дисков. Во время выполнения приложения вы можете прочитать имя выбранного пользователем диска в свойстве Drive. –

Свойство TextCase задает регистр отображения:

  • tcUppcrCase  в верхнем,

  • tcLowerCase  в нижнем.

Связать компонент DriveComboBox со списком каталогов, отображаемых компонентом DirectoryListBox, можно во время проектирования через свойство DirList компонента DriveComboBox. Это свойство может указывать на компонент типа DirectoryListBox. Можно обеспечить связь этих двух типов компонентов и программно, включив в блок обработчика события OnChange компонента DriveComboBox оператор

DirectoryListBox1->Drive = DriveComboBox1->Drive;

Этот оператор задает имя диска, выбранное пользователем в компоненте DriveComboBox1.

Компонент DirectoryListBox отображает список каталогов диска, заданного свойством Drive. Значение этого свойства можно установить программно во время выполнения. Как уже говорилось выше, связь этого свойства с выбранным пользователем диском в компоненте DriveComboBox устанавливается или программно, или с помощью свойства DirectoryListBox компонента DriveComboBox.

Связь списка каталогов с компонентом типа TFileListBox, отображающим список файлов, осуществляется с помощью свойства FileList. Можно также использовать результаты выбора пользователем каталога, читая свойство Directory в обработчике события OnChange.

С компонентом DirectoryListBox можно также связать метку типа Label. В этой метке будет отображаться путь к текущему каталогу. Если путь не умещается в метке, он автоматически отображается в сокращенном виде с помощью функции MinimizeName. Метка, отображающая каталог, указывается в свойстве DirLabel.

Список файлов содержится в компоненте FileListBox. Его свойства Drive, Directory и Mask определяют соответственно диск, каталог и маску файлов. Эти свойства можно устанавливать программно или связывая описанным ранее способом компонент FileListBox с компонентами DriveComboBox и DirectoryListBox. Свойство FileType позволяет включать в список не все файлы, а только те, которые имеют соответствующие атрибуты. Свойство FileType представляет собой множество, указывающее типы включаемых файлов. Элементы этого множества могут иметь значения:

  • ftReadOnly  – только для чтения,

  • ftHidden  – невидимые,

  • ftSystem  – системные,

  • ftVolumeID  – обозначения дисков,

  • ftDirectory  – каталоги,

  • ftArchive  – архивные,

  • ftNormal  – не имеющие особых атрибутов.

Свойство ShowGlyphs разрешает или исключает показ пиктограмм файлов (в примере это свойство равно true). Свойство MultiSelect разрешает выбор нескольких файлов. Основное свойство, в котором можно прочитать имя выбранного пользователем файла  FileName. Со списком файлов может быть связано окно редактирования Edit, в котором отображается выбранный файл. На этот список указывает устанавливаемое во время проектирования свойство FileEdit.