RSS    

   Курсовая работа: Файловый менеджер


3.Конструкторская часть

файловый менеджер система пользовательский

I.  TreeView1 : TTreeView

Данный визуальный объект изображает дерево каталогов и настраивается динамически в процессе работы путем добавления/удаления узлов. Основные события, участвующие в формировании дерева – OnExpanded и OnCollapsing, возникающие соответственно при раскрытии и свертывании некоторого узла. По первому событию осуществляется помещение в дерево внуков раскрываемого узла посредством функции ViewChild, по последнему – удаление внуков сворачиваемого узла процедурой DeleteChild. Пользователь полностью скрыт от информации об изменении структуры дерева.

Обработчик события OnClick обеспечивает реакцию на щелчок на изображении некоторой папки. Задача обработчика – вызов процедуры перерисовки списка файлов в соответствии с изменившемся текущим каталогом.

Сортировка элементов дерева, осуществляется стандартным способом: путем включения условия сравнения в обработчик события OnCompare.

II.  ListView1 : TListView

Визуальный объект имитирует список файлов и каталогов и изменяет свою структуру всякий раз, когда меняется текущая директория. Основное событие, участвующее в формировании - OnDoubleClick. Оно возникает при двойном щелчке на одном из пунктов списка, и в случае если им является папка, обработчик изменяет текущую директорию и вызывает функция переформирования элементов ListView.

Сортировка аналогично TreeView осуществляется вписыванием нужного условия по событию OnCompare. А вот само условие сравнение может меняться и зависит от глобальных переменных ColumnToSort и Direct. Изменение колонки сортировки и направления может происходить как из меню, но чаще путем клика на заголовке столбца. Для этой ситуации предназначен обработчик события – OnColumnClick. Извлекающий данные о новом сортируемом столбце и вызывающий процедуру пересортировки списка – AlphaSort.

Еще одним важным событием для списка файлов менеджера является OnEdited, возникающее по окончанию переименования некоторого элемента. Обработчик предусматривает вызов процедуры переименования файла, которая в случае успеха позволяет переименовать узел, в случае неудачи имя узла остается неизменным.

III.  StatusBar1 : TStatusBar

Этот компонент служит для вывода справочной информации, вывод которой осуществляется в пользовательских функциях: ViewFailAndFolderInListView и UpdateAll.

IV.  Элементы управления MainMenu1 : TMainMenu, ControlBar1 : TControlBar и PopupMenu1 : TPopupMenu.

Элементы управления содержат схожие группы команд и позволяют пользователю влиять на работу приложения.

Работа компонента MainMenu организуется обработкой нажатий на отдельные пункты меню, как-то «Создать папку», «Удалить», «Переименовать» и т.д. Обработчики нажатий, как правило, содержат лишь вызов соответствующих процедур. ControlBar1 и PopupMenu1 в основном дублируют пункты меню и содержат аналогичные обработчики. Они введены для удобства пользователя и более быстрому доступу к отдельным командам.

Эти компоненты отличаются лишь способом динамического формирования меню. Для ControlBar1, правда, вообще отсутствуют какие-либо изменения, а вот MainMenu1 и PopupMenu1 меняют состав своих компонентов. Для MainMenu1 осуществляется динамического отслеживание активных компонентов и при открытии группы команд происходит отключение (подсвечивание блеклым светом) тех из них, которые не могут быть доступны в текущий момент. Так как компонент PopupMenu1 представляет собой довольно длинный линейный список команд, закрывающий собой большую часть экрана, ненужные действия просто изымаются из всплывающего меню. Пользователь видит лишь те, которые возможны в текущий момент.

3.1  Дополнительные возможности

 

3.1.1Копирование/перемещение перетаскиванием

Копирование/перемещение осуществляется перетаскиванием между двумя компонентами ListView и TreeView. Для осуществления такой возможности используются 3 события в каждом из компонентов: OnMouseDown, OnDragOver и OnDragDrop (расставлены в порядке использования). Первое из них начинает процесс перетаскивания, а именно: проверяет нажата ли левая клавиша на компоненте, осуществляет распознавание типа перетаскивания (копирование/перемещения) путем анализа нажатия клавиши CTRL, начинает перетаскивание методом BeginDrag.

Событие OnDragOver возникает при каждый раз при перемещении перетаскиваемого элемента по объекту. Здесь необходимо определить возможность получения элемента, путем анализа источника и места помещения в приемнике.

Наступление события OnDragDrop означает окончание перетаскивания. В обработчике анализируются перемещенный элемент и место его опускания. В соответствии с этими данными, а также производимой операцией, сохраненной в глобальной переменной обработчиком OnMouseDown, осуществляется заполнение буферов frombuf и tobuf и вызов FileAndFolderOperation с соответствующим кодом.

3.1.2  Работа с дискетами и дисками

Работа с дискетами и дисками осложнена тем, что отсутствие носителя информации приводит к неоправданному обращению к приводу и появлению различных информационных сообщений на экране, что, безусловно, раздражает пользователя, не работающего с дискетой/диском. Для исключения таких ситуаций для приводов со сменными носителями предусмотрена глобальная переменная DiskIn в виде перечисления. Она включает в себя буквы тех приводов в которые действительно вставлены носители. Проверка таким образом наличия диска/дискеты, необходимая во многих функциях работы с деревом, вроде обновления и т.д, заключается в обращении к этой глобальной переменной. Помещение букв носителей в это множество осуществляется при удачном обращении к приводу со вставленной дискетой/диском. Удаление организуется при первом неудачном обращении к приводу дисков/дискет – имя диска удаляет из множества DiskIn. Результатом введения такой переменной стал запрет доступа к незаполненным приводам.

3.1.3 Свойства файлов, папок и дисков

Важной частью файлового менеджера являются средства отображения свойств различных объектов файловой системы. Реализация этих средств была сведена к созданию двух дополнительных форм FPropertyFile и FPropertyDrive, заполняемых необходимыми данными в процессе получение свойств посредством API Windows. Разделение форм было произведено из-за существенного различия типа информации в свойствах дисков и файлов.

Предварительное заполнение и отображение формы FPropertyFile осуществляется в пользовательской функции Prepare, получающей в качестве параметра путь к файлу. Ниже перечислены основные отображаемые свойства и методы их получения: иконка файла/папки, тип файла (функция SHGetFileInfo); имя файла/папки (функция ExtractFileName); папки (ExtractFilePath); размера (функция GetFileAttributesEx), размера на диске (функции GetFileAttributesEx и GetDiskFreeSpace для получения информации о размере кластера/сектора); даты создания, изменения, открытия (функции GetFileAttributesEx и FileTimeToLocalFileTime, FileTimeToSystemTime и SystemTimeToDateTime для преобразования даты к удобному виду); свойства файла/папки (функция GetFileAttributesEx). Для определения размера папки и количества, содержащихся в ней объектов, используется рекурсивная функция Get_Size_Folder, обходящая всю иерархическую структуру директории, подсчитывая и суммируя размеры отдельных объектов. Сохранение возможно измененных имени и атрибутов осуществляется в процедуре Set_Change.

Аналогично FPropertyFile заполнение полей формы FPropertyDrive производится в процедуре Prepare. Свойства, отображаемые с помощью элементов формы, следующие: иконка (по типу диска функцией GetDriveType); метка диска и тип файловой системы (функция GetVolumeInformation); количество занятого и свободного места (функция GetDiskFreeSpaceEx). Кроме того занятое/свободное место отображается в виде круговой диаграммы – объект класса TChart. Единственным свойством изменение которого возможно является метка диска. Именно она изменяется по нажатию на клавиши OK или «Применить».

Вызов функций отображения и подготовки форм осуществляется из процедуры ViewProperty. Единственная задача этой функции - определить какую из форм следует показать. Эта проблема решается путем сравнения пути к отображаемой папке с путем к корневому каталогу диска.


4. Техническая документация

Приложение не требует установки. Для его работы следует запустить FileManager.exe. Приложение рекомендуется для работы с файловой системой и файлами. Файловый менеджер позволяет выполнять наиболее частые операции над файлами - создание, открытие/проигрывание/просмотр, редактирование, перемещение, переименование, копирование, удаление, изменение атрибутов и свойств, поиск файлов и назначение прав.


5. Экспериментальная часть

При запуске программы создается главная форма, затем приложение ожидает действия пользователя. Каждому предусмотренному действию сопоставлена какая-то функция-обработчик.

При нажатии на кнопки «Удалить» и «Создать» программа выводит на экран соответствующие диалоговые окна, где так же есть предусмотренные действия пользователя с объектами на этих формах.

После выполнения какого-либо действия, программа возвращается в режим ожидания пользовательских действий.

Для завершения работы с Файловым Менеджером пользователю достаточно нажать на кнопку «Закрыть» системного меню, находящуюся в правом верхнем углу окна программы.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.