АЛГОРИТМ РЕАЛИЗАЦИИ ПРОЕКТА

 

Для визуального проектирования необходимо на главную форму добавить компоненты: TListView, TMainMenu, TDriveComboBox, TLabel, TImageList, TStatusBar, TButton.

Для TForm1 необходимо описать событие FormCreate. В результате выполнения этой процедуры флаговым переменным lv1,lv2 присвоится значение false, а для компонентов ListView1 и ListView2 установятся необходимые подпункты (рис. 13).

Для добавления объектов в ListView предусмотрены две подпрограммы, выполняющие аналогичные операции, - NewList, NewList2. С помощью оператора findfirst программа ищет в указанной директории объект, после чего добавляет его в уже созданный список, вызвав процедуру AddNewFile, AddNewFile2(рис. 10, 14). Далее при реализации цикла действие повторяется, пока не будет добавлен последний объект (рис. 11, 15).

Для перехода пользователя по логическим или физическим дискам компьютера для компонента TDriveComboBox предусмотрен обработчик события DriveComboBox1Change, DriveComboBox2Change. При выполнении этих процедур глобальным переменным way, way2, указывающим на текущий путь для каждого списка, присваивается выбранное имя диска, после чего вызывается процедура NewList, NewList2(рис. 7, 18).

При выборе какого-либо компонента в списках происходит выполнение нескольких подпрограмм. Сначала необходимо определить над каким списком пользователь хочет произвести действия, для этого в обработчике события ListView1Click, ListView2Click компонента ListView присвоим соответствующее значение флаговым переменным lv1, lv2(рис. 29, 30). После этого определяем на какой компонент (файл, папка или верхний компонент списка) пользователь нажал. Для этого в обработчиках события ListView1DblClick, ListView2DblClick узнаем номер изображения выбранного объекта после чего вызываем необходимую процедуру (рис. 6, 19), которая запустит выбранный файл на исполнение – dbclickthirdtime, dbclickthirdtime2 (рис. 33, 34), перейдет на каталог вверх – dbclickfirstime, dbclickfirstime2 (рис. 9, 16) или вниз – dbclicksecondtime, dbclicksecondtime2 (рис. 8, 17).

Для реализации основных функций файлового менеджера написаны процедуры копирования – copy (рис. 12), удаления – mydelete (рис. 26), переноса файла – changeplace (рис. 40), создания нового каталога – Newdirectory (рис. 37), которые вызываются при обработке события DbClick на кнопках и при нажатие на соответствующем пункте меню (рис. 23, 24, 27, 28, 35, 36, 38, 41).

Для закрытия приложения предусмотрено два способа: путем нажатия на кнопку или пункт меню (рис. 21, 22)

Также в проекте реализован принцип DragAndDrop для копирования объектов (рис. 43, 44, 45, 46, 47, 48, 49, 50).

 

ИНСТРУКЦИЯ ДЛЯ ПОЛЬЗОВАТЕЛЯ

Для установки программы FileCommander необходимо скопировать откомпилированный exe – файл в любую из директорий жесткого диска компьютера. Для запуска нужно открыть файл filecommander.exe двойным щелчком мыши.

Минимальные системные требования программы: процессор семейства x86, ОЗУ – 126 Мб, операционная система Windows ’98, SVGA, 1 Мб свободного места на жестком диске.

Основными функциями программы является работа с файловой структурой компьютера. Это возможно сделать с помощью кнопок, расположенных в нижней части окна программы, или с помощью пунктов меню «Операции». Передвижение по каталогам осуществляется двойным нажатием на объект с изображением каталога в списке, при нажатии на exe файл программа запустит это приложение. Также для копирования файла можно просто перенести его из одного списка в другой. Это возможно благодаря реализации принципа DragAndDrop.

 

ЗАКЛЮЧЕНИЕ

 

В ходе выполнения курсовой работы была разработана программа управления файлами компьютера, способная производить копирование файлов и каталогов. Основным достоинством программы является простота в работе и небольшое потребление ресурсов компьютера, недостатков в своем проекте выделить не могу.

 

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

 

1. Архангельский А.Я. 100 компонентов общего назначения библиотеки Delphi 5. – М.: Нолидж 1999

2. Баженова И.Ю. Delphi 7. Самоучитель программиста. – М.: Кудиц-образ, 2003.

3. Фаронов В.В. Delphi 6: учебный курс. – С-Пб.: Питер, 2002

4. Бобровский С. Delphi 5: учебный курс. – С-Пб.: Питер, 2001

5. Гофман В. Э., Хомоненко А.Д. Delphi 6. – С-Пб: БХВ – Петербург, 2002

 

 

Приложение

unit Main;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

FileCtrl, StdCtrls, ComCtrls, frFilePanelU, ImgList, ExtCtrls, Menus;

type

TfmDarkickCommander = class(TForm)

frFilePanelLeft: TfrFilePanel;

pnTop: TPanel;

FileListBox1: TFileListBox;

ImageList1: TImageList;

splPanelsSplitter: TSplitter;

frFilePanelRight: TfrFilePanel;

pnBottom: TPanel;

cmbxCommand: TComboBox;

lbPath: TLabel;

lbItem: TLabel;

btCopy: TButton;

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormActivate(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure cmbxCommandKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure cmbxCommandEnter(Sender: TObject);

procedure btCopyClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmDarkickCommander: TfmDarkickCommander;

implementation

Var

FirstRun:Boolean;

{$R *.DFM}

procedure TfmDarkickCommander.FormClose(Sender: TObject; var Action: TCloseAction);

begin

frFilePanelLeft.Done;

frFilePanelRight.Done;

end;

procedure TfmDarkickCommander.FormActivate(Sender: TObject);

begin

If FirstRun Then

Begin

frFilePanelRight.Init(FileListBox1, ImageList1, frFilePanelLeft.Deactivate, lbPath, lbItem);

frFilePanelLeft.Init(FileListBox1, ImageList1, frFilePanelRight.Deactivate, lbPath, lbItem);

FirstRun:=False;

End;

end;

procedure TfmDarkickCommander.FormCreate(Sender: TObject);

begin

FirstRun:=True;

end;

procedure TfmDarkickCommander.cmbxCommandKeyDown(Sender: TObject;

var Key: Word; Shift: TShiftState);

Var

P:Integer;

Command, Params:String;

begin

If Key<>VK_Return Then Exit;

cmbxCommand.Text:=Trim(cmbxCommand.Text);

If ssCtrl In Shift Then

Begin

cmbxCommand.Text:=' '+cmbxCommand.Text+lbItem.Caption+' ';

Exit;

End;

If cmbxCommand.Items.IndexOf(cmbxCommand.Text)<0 Then

cmbxCommand.Items.Add(cmbxCommand.Text);

P:=Pos(' ', cmbxCommand.Text);

If P<=0 Then

Begin

Exit;

End;

Command:=Copy(cmbxCommand.Text, 1, P-1);

Params:=Copy(cmbxCommand.Text, P+1, Length(cmbxCommand.Text)-P);

end;

procedure TfmDarkickCommander.cmbxCommandEnter(Sender: TObject);

begin

cmbxCommand.SelectAll;

end;

 

procedure TfmDarkickCommander.btCopyClick(Sender: TObject);

begin

If frFilePanelLeft.NowActive Then

frFilePanelLeft.TryCopyFile

Else

frFilePanelRight.TryCopyFile;

end;

 

 

end.

 

 


[1] Баженова И. Ю. Delphi 7. Самоучитель программиста. – М.: Кудиц-образ, 2003г. 99стр.