Работа с файлами и мультимедиа


Современные файловые компоненты


Download 361.5 Kb.
bet9/9
Sana20.10.2023
Hajmi361.5 Kb.
#1711567
TuriЛекции
1   2   3   4   5   6   7   8   9
Bog'liq
Работа с файлами и мультимедиа

Современные файловые компоненты
Начиная с Delphi 6, в состав VCL было включено несколько дополнительных компонент, обеспечивающих доступ к файловой системе. Это ShellTreeView, ShellListView и ShellComboBox, все они находятся на закладке примеров (Samples). По этой причине их принято считать нестандартными компонентами VCL, и, более того, они не упоминаются в справочной системе. Тем не менее, эти компоненты являются удобной альтернативой морально устаревшим и не отвечающим современным требованиям компонентам DirectoryListBox, FileListBox и DriveComboBox. В частности, с их помощью затруднительно добраться до таких мест системы, как рабочий стол или до папки "Мои документы". Кроме того, они не могут напрямую работать с сетью. В современных компонентах, интегрированных с ОС, эти проблемы решены. В частности, компонент ShellTreeView (системное дерево) отображает структуру папок и устройств компьютера, а так же сетевых ресурсов. Подобную задачу выполняет и ShellComboBox, с той лишь разницей, что он не отображает каталоги на дисках и не показывает иерархии объектов. А компонент ShellListView может отображать все объекты, но не их иерархию. Сами системные компоненты, реализованные в ОС, можно видеть в проводнике Windows. В нем область "папки" соответствует компоненту ShellTreeView, основная область - ShellListView, а адресная строка, с некоторыми оговорками - ShellComboBox.
Рассмотрим некоторые свойства этих компонент, и начнем с ShellTreeView, для чего обратимся к таблице 15.3.

Таблица 15.3. Свойства ShellTreeView

Свойство

Тип

Описание

AutoContextMenu

Boolean

Определяет, должно ли использоваться контекстное меню, предоставляемое ОС

AutoRefresh

Boolean

Определяет, должно ли содержимое обновляться автоматически

ObjectTypes

TShellObjectTypes

Определяет, объекты каких типов должны отображаться

Root

String

Определяет корневой каталог или системную папку

ShellComboBox

TShellComboBox

Указывает на ассоциированный компонент

ShellListView

TShellListView

Указывает на ассоциированный компонент

ShowButtons

Boolean

Определяет, отображать или нет значки рядом с именем папки, чтобы раскрыть ее содержимое

ShowLines

Boolean

Определяет, должны или нет выводиться линии

ShowRoot

Boolean

Определяет, должна или нет отображаться корневая папка

Свойство ObjectTypes имеет 3 флага, указывающих на то, какие компоненты следует показывать. Это otFolders - папки, otNonFolders - все, кроме папок, и otHidden - скрытые объекты.
Свойство Root, помимо непосредственного пути, вроде "c:\Dirname", может содержать специальные значения, ссылающиеся на различные системные папки. В их числе можно отметить следующие:

  • rfDesktop - рабочий стол;

  • rfMyComputer - "мой компьютер":

  • rfNetwork - "сетевое окружение";

  • rfControlPanel - панель управления;

  • rfPrinters - принтеры;

  • rfFonts - шрифты;

  • rfAppData - данные приложений (Documents and Settings);

  • rfRecycleBin - "корзина".

Компонент ShellListView имеет все те же самые свойства (из приведенных в таблице 15.3), что и ShellTreeView, разумеется, за исключением свойства ShellListView: вместо него используется аналогичное по назначению свойство ShellTreeView. Кроме того, у него имеется еще одно свойство - AutoNavigate, которое, будучи установленным в истину, позволит пользователю открывать содержимое каталогов непосредственно из этого компонента.
Наконец, компонент ShellComboBox, основанный на раскрывающемся списке, содержит только 1 свойство из всех вышеперечисленных - Root.
Для того чтобы самостоятельно создать некоторое подобие Проводника, достаточно поместить на форму все эти компоненты и связать их между собой при помощи свойств ассоциирования. А чтобы такой проводник вел себя так же, как имеющийся в Windows, т.е. мог изменять размеры, нам понадобится еще панель, на которую мы поместим ShellComboBox, и разделитель - компонент Splitter. Он находится на закладке Additional и выполняет функцию ползунка, при помощи которого можно изменять размеры соседних компонентов. При этом для всех участвующих в этом компонентов должно быть настроено выравнивание (свойство Align). Таким образом, вначале для панели, на которой находится раскрывающийся список, следует установить свойство Align в alTop, в результате чего панель займет все пространство вверху окна. Затем для дерева (ShellTreeView) установим значение Align в alLeft, чтобы оно расположилось по левому краю окна. После этого поместим на форму разделитель. Поскольку он должен граничить как раз с деревом, и изменять, в том числе, и его размеры, для него свойство Align тоже должно быть установлено в alLeft. Впрочем, по умолчанию оно как раз такое значение и имеет. Наконец, чтобы занять все оставшееся место, установим для ShellComboBox выравнивание в alClient. Запустив программу, можно убедиться, что она действительно функционирует подобно Проводнику Windows (рис. 15.7).

Рис. 15.7. Упрощенный аналог проводника Windows
Подобно "настоящей" области просмотра файлов, ShellListView можно переключать между режимами отображения, для чего следует воспользоваться свойством ViewStyle, которое может принимать одно из следующих значений: vsIcon, vsSmallIcon, vsList и vsReport. В примере, находящемся в Demo\Part3\Explore, продемонстрированы все эти режимы применительно к нашему проводнику.
Download 361.5 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling