RSS    

   Реферат: Разработка файловой оболочки

В программе реализованы следующие механизмы:

·     копирования, переноса, удаления, переименования файлов и директорий,

·     поиск файлов по маске,

·     наложение фильтра на список файлов,

·     просмотр и редактирование файлов во внешних редакторах,

·     присвоение и получение атрибутов файла,

·     присвоение атрибутов группе файлов,

·     запуск приложений со строкой параметров,

·     создание директории,

·     определение размера директории,

·     получение информации о диске,

·     настройки интерфейса программы,

·     определение суммарного объёма дискового пространства занимаемого группой файлов,

·     восстановление интерфейсных параметров при повторном запуске программы.

Программа имеет удобный интерфейс и может использоваться для работы пользователями с разным уровнем знаний.

Системные требования: Операционная система Windows’95 и выше, 500 килобайт дискового пространства.

Главная форма программы

Модуль описывающий главную форму

unit UMainForm; // главная форма программы

interface

// подключаемые модули (стандартные)

uses

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

 Menus, ExtCtrls, ComCtrls, StdCtrls, FileCtrl, Grids, Outline, DirOutln,

 ToolWin, Buttons;

type

 TMainForm = class(TForm)

 MainMenu1: TMainMenu;

 File1: TMenuItem;

 About1: TMenuItem;

 N1: TMenuItem;

 Exit1: TMenuItem;

 Options1: TMenuItem;

 Directory: TDirectoryOutline;

 FileList: TFileListBox;

 Drv: TDriveComboBox;

 StatusBar: TStatusBar;

 DirectoryMenu: TPopupMenu;

 FileMenu: TPopupMenu;

 Splitter: TSplitter;

 Cut: TMenuItem;

 Copy: TMenuItem;

 Paste: TMenuItem;

 Rename1: TMenuItem;

 Delete: TMenuItem;

 NewDir: TMenuItem;

 CopyDir: TMenuItem;

 RenameDir: TMenuItem;

 DeleteDir: TMenuItem;

 PasteDir: TMenuItem;

 TempDelete: TListBox;

 TempCopyMove: TListBox;

 Open: TMenuItem;

 View: TMenuItem;

 FileMask1: TMenuItem;

 CMDirList: TListBox;

 DFileList: TListBox;

 Find1: TMenuItem;

 Info1: TMenuItem;

 CMFileList: TListBox;

 FileAttr: TMenuItem;

 SizeDirectory1: TMenuItem;

 CutDir: TMenuItem;

 ToolBar1: TToolBar;

 DrBox: TDriveComboBox;

 Bevel1: TBevel;

 Bevel2: TBevel;

 SpeedButton1: TSpeedButton;

 SCut: TSpeedButton;

 Bevel3: TBevel;

 SCopy: TSpeedButton;

 SPaste: TSpeedButton;

 SDel: TSpeedButton;

 Up: TSpeedButton;

 Bevel4: TBevel;

 Cut1: TMenuItem;

 Copy1: TMenuItem;

 Paste1: TMenuItem;

 Rename: TMenuItem;

 Delete1: TMenuItem;

 Selectall: TMenuItem;

 InvertSelect: TMenuItem;

 procedure About1Click(Sender: TObject);

 procedure Exit1Click(Sender: TObject);

 procedure FormCreate(Sender: TObject);

 procedure Options1Click(Sender: TObject);

 procedure DrivesSectionClick(HeaderControl: THeaderControl;

 Section: THeaderSection);

 procedure DrivesMouseUp(Sender: TObject; Button: TMouseButton;

 Shift: TShiftState; X, Y: Integer);

 procedure NewDirClick(Sender: TObject);

 procedure DirectoryChange(Sender: TObject);

 procedure CopyClick(Sender: TObject);

 procedure CutClick(Sender: TObject);

 procedure PasteClick(Sender: TObject);

 procedure Rename1Click(Sender: TObject);

 procedure DeleteDirClick(Sender: TObject);

 procedure DeleteClick(Sender: TObject);

 procedure FileMenuPopup(Sender: TObject);

 procedure FileMask1Click(Sender: TObject);

 procedure FileListDblClick(Sender: TObject);

 procedure SplitterMoved(Sender: TObject);

 procedure Find1Click(Sender: TObject);

 procedure Info1Click(Sender: TObject);

 procedure CopyDirClick(Sender: TObject);

 procedure RenameDirClick(Sender: TObject);

 procedure FileAttrClick(Sender: TObject);

 procedure ViewClick(Sender: TObject);

 procedure SizeDirectory1Click(Sender: TObject);

 procedure FileListMouseUp(Sender: TObject; Button: TMouseButton;

 Shift: TShiftState; X, Y: Integer);

 procedure FileListKeyPress(Sender: TObject; var Key: Char);

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

 Shift: TShiftState);

 procedure PasteDirClick(Sender: TObject);

 procedure DirectoryMenuPopup(Sender: TObject);

 procedure File1Click(Sender: TObject);

 procedure OpenClick(Sender: TObject);

 procedure DrBoxChange(Sender: TObject);

 procedure UpClick(Sender: TObject);

 procedure SCutClick(Sender: TObject);

 procedure SPasteClick(Sender: TObject);

 procedure SDelClick(Sender: TObject);

 procedure SCopyClick(Sender: TObject);

 procedure FileListClick(Sender: TObject);

 procedure CutDirClick(Sender: TObject);

 procedure Cut1Click(Sender: TObject);

 procedure Copy1Click(Sender: TObject);

 procedure Paste1Click(Sender: TObject);

 procedure Delete1Click(Sender: TObject);

 procedure RenameClick(Sender: TObject);

 procedure FormResize(Sender: TObject);

 procedure InvertSelectClick(Sender: TObject);

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

 Shift: TShiftState);

 procedure SelectallClick(Sender: TObject);

 private

 public

 end;

var

 MainForm: TMainForm;

 Size:integer;

implementation

// подключаемые модули (не стандартные)

uses UAboutBox,UMainForm_, UOptionsForm, UCreateDir, UProgressForm,

 URenameForm, UAskDeleteForm, UGetFileMask, FmxUtils, UFindForm, UInfoForm,

 UAttrFilesForm,UNotTrivial, UDeleteDir, URenameDirForm, URunForm,

 UViewForm;

{$R *.DFM}

procedure TMainForm.About1Click(Sender: TObject);

// вывод формы "ИНФОРМАЦИЯ О ПРОГРАММЕ"

begin

 AboutBox.Show;

end;

procedure TMainForm.Exit1Click(Sender: TObject);

// Обработка выхода из программы

begin

 If AskExit then

 begin

 // Подтверждение выхода

 If Application.MessageBox('Exit ?','Exit',MB_APPLMODAL+MB_ICONQuestion+MB_YESNO)=IDYes then

 Begin

 // запись информации о программе в файл МС.INI

 SaveIniMainForm;

 Close;

 end

 end

 else

 begin

 SaveIniMainForm;

 Close;

 end;

end;

procedure TMainForm.FormCreate(Sender: TObject);

//Установка начльных параметров для компонент главной формы

begin

 SetUpMainForm;

 SetUpComponents;

end;

procedure TMainForm.Options1Click(Sender: TObject);

//Вывод формы параметров

begin

 // Центрирование выводимой формы относительно главной формы

 GetFormToCenter(OptionsForm);

 OptionsForm.ShowModal;

end;

procedure TMainForm.DrivesSectionClick(HeaderControl: THeaderControl;

 Section: THeaderSection);

// Смена текущего диска

begin

 Directory.Drive:=Section.Text[1];

 Directory.SetDirectory(Section.Text[1]+':\');

 MainForm.Directory.BuildTree;

end;

procedure TMainForm.DrivesMouseUp(Sender: TObject; Button: TMouseButton;

 Shift: TShiftState; X, Y: Integer);

begin

 //перерисовка списка директорий при необходимости

 Directory.Repaint;

end;

procedure TMainForm.NewDirClick(Sender: TObject);

// Создание директории и вывод соответствующей формы

begin

 CreateDirForm.Show;

end;

Function CountDir(Str:String):String;

// Определение количества поддиректорий в текущей директории

 Var F:TSearchRec;

 C:integer;

 begin

 c:=0;

 findfirst(Str+'\*.*',faAnyFile,F);

 findnext(F);

 repeat

 if (f.Attr>=16) and (f.attr<32) and (f.Name<>'.') and (f.Name<>'..') then

 c:=c+1;

 Until(findnext(f)<>0);

 CountDir:=IntToStr(c);

 end;

procedure TMainForm.DirectoryChange(Sender: TObject);

//Смена текущей директории

begin

//Обновление списка файлов

 FileList.SetDirectory(Directory.Directory);

//Заполнение статус-строки

 MainForm.StatusBar.Panels[0].Text:=CountDir(Directory.Directory)+' dir. & '+IntToStr(MainForm.FileList.Items.Count)+

 ' files ';

 MainForm.StatusBar.Panels[1].Text:='';

//Определение активных кнопок панели управления

 If UpperCase(MainForm.Directory.Directory)=UpperCase(MainForm.DrBox.Drive+':\') then

 begin

 Up.Enabled:=False;

 SCut.Enabled:=False;

 SCopy.Enabled:=False;

 SDel.Enabled:=False;

 end

 else

 begin

 Up.Enabled:=True;

 SCut.Enabled:=True;

 SCopy.Enabled:=True;

 SDel.Enabled:=True;

 end;

end;

procedure TMainForm.CopyClick(Sender: TObject);

// Копирование файлов

begin

 FlagCopyFile:=True;

 FlagMoveFile:=False;

 CopyPathFileInTemp;

end;

procedure TMainForm.CutClick(Sender: TObject);

// Вырезание файлов

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


Новости


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

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

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.