Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Основы программирования на языке Pascal

Содержание:

Введение

Энергичное развитие новых языков программирования началось сразу же после появления первых компьютеров на электронных лампах. Для таких компьютеров требовался высокоэффективный код, который вручную составлялся на Ассемблере. В 50-е годы был разработан первый алгоритмический язык Fortran. В конце 60-х был создан язык, в которым было пописано понятие класса - Simula-67. В 70-х появился язык Pascal и C. В 83 году на свет появляется язык С++. В 1986 году был изобретён Object Pascal, как следует из названия - язык стал объектно-ориентированным. В 1996 году на свет появляется Java. И в 2001 году появляется язык C#. И до сих пор языки продолжают развиваться и преобразовываться в новые [2].

Так в 2002 году вышел новый Delphi, который является продолжением Object Pascal. На данный момент среда Delphi продолжает развиваться [1].

Изначально среда разработки Delphi была предназначена исключительно для разработки приложений Microsoft Windows, затем был реализован вариант для платформ Linux (под торговой маркой Kylix), однако после выпуска в 2002 году Kylix 3 его разработка была прекращена, и вскоре было объявлено о поддержке Microsoft .NET, которая, в свою очередь, была прекращена с выходом Delphi 2007.

В настоящее время, наряду с поддержкой разработки 32 и 64-разрядных программ для Windows, реализована возможность создавать приложения для Apple Mac OS X (начиная с Embarcadero Delphi XE2), iOS (включая симулятор, начиная с XE4 посредством собственного компилятора), Google Android (начиная с Delphi XE5), а также Linux Server x64 (начиная с версии 10.2 Tokyo).

Актуальность курсовой работы заключается в изучении и закреплении навыков программирования на языке Pascal.

Объектом исследования курсовой работы является объектно-ориентированное программирование.

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

Цель курсовой работы – освоение принципов объектно-ориентированного программирования и разработка приложения на языке Pascal.

Задачи курсовой работы:

  • изучить современные концепции программирования;
  • изучить основные приемы создания приложения в интегрированной среде разработки Embarcadero RAD Studio Delphi;
  • разработать графическое приложение, отображающее древовидную структуру файловой системы;
  • провести тестирование системы и отладить код.

Теоретические основы программирования в Pascal

История развития и основы Pascal

Само названия языка – «Паскаль» возникло в честь одного из великих французских математиков и физиков Блеза Паскаля. Родоначальником языка Pascal стал один из первых высокоуровневых языков программирования Algol. Создателем языка Pascal является Николас Вирт [5].

Выдающийся успех языка Pascal обусловлен рядом причин:

  • язык в естественной форме отразил самые важные современные концепции технологии разработки программ;
  • именно благодаря своей компактности, целостности и ортогональности понятий, язык программирования Паскаль оказался весьма легок для изучения и освоения;
  • несмотря на кажущуюся простоту языка, он оказался пригодным для достаточно широкого спектра приложений, для разработки очень больших и сложных программ, даже операционных систем;
  • Pascal весьма технологичен для реализации почти для всех (в том числе нетрадиционных) машинных текстур.

Программа, написанная на языке программирования Pascal, состоит из заголовка, раздела описаний и тела программы (блока операторов). Для объявления заголовка необходимо указать слово «Program», а затем название самой программы. Для возможности использования многих функций и процедур необходимо подключить модули (или библиотеки), которые могут быть как стандартными, так и пользовательскими. Для этого используется ключевое слово «Uses» и далее через запятую перечисляются модули, которые требуется подключить.

Раздел описание констант начинается с ключевого слово «Const». Раздел описания типов с ключевого слова «Type». В разделе описания типов создаются пользовательские типы, которые, как и стандартные можно использовать при объявлении переменных [7].

Описанные типы применяются в разделе описания переменных, который начинается со слова «Var». Так как язык программирования Pascal является строго типизированным, то объявления типа переменной обязательное требование.

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

Также стоит отметить, что разделы описаний, в случае их наличия, должны располагаться именно в той последовательности, в которой они описаны выше.

Раздел операторов является телом программы и представляет собой составной оператор, начало которого обозначается словом «Begin», а конец – «End.». Заключенный в нем операторы заканчиваются символом «;». Без этого раздела программа не имеет никакого смысла.

На данный момент язык Pascal развивается в основном в среде программирования Delphi. На данный момент Object Pascal в среде Delphi принято называть также, как и среду разработки.

Характеристика среды разработки Delphi

Delphi является быстродействующей системой разработки приложений для ОС Windows, которую зачастую называют системой RAD (Rapid Application Development): rapid – быстрый, скорый, development – усовершенствование, развитие.

Основу Delphi составляет графическая среда разработки приложений, являющаяся интегрированной средой разработки (Integrated Development Environment) [3].

Для работы в среде модификации Delphi 2007, Delphi 2010 и Delphi NET необходима установка компонентов Microsoft.NET Framework и Microsoft.NET Framework SDK.

Среда программирования в модификации Delphi 2010 выпущена в комплектах Professional, Enterprise и Architect. В каждый из комплектов входит набор компонентов и средств, которые сами по себе являются готовыми программными решениями и обеспечивают разработку мощных эффективных приложений различных по функционалу, в том числе и базы данных. Комплекты Enterprise и Architect оптимальны для работы с базами данных удалённо, посредством подключения к ним через сервер. Комплект Professional допускает работы лишь с локальными базами данных.

NET-технологии среды Delphi в настоящее время продолжают активно развиваться и имеют высокие перспективы. [6]

Среда программирования Delphi – многооконная система, включающая необходимы инструментарий для эффективной разработки приложений ОС Windows. Среда является гибко настраиваемой и стандартизированной.

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

Новый проект в среде программирования Delphi создается использованием приложения VCL (Visual Component Library) – библиотеки визуальных компонентов. Данный модуль вызывает стандартный перечень утилитов и объект типа Forma, приписываемый к классу форм. Так, объектно-ориентированный язык программирования Паскаль предусматривает объекты и классы. Класс является типом данных, типом объектов, в свою очередь объект представляет конкретный экземпляр класса.

Таким образом, иерархия классов является необходимым атрибутом объектно-ориентированного программирования и предполагает использование классов различного уровня [8].

При создании программы выбрать необходимые свойства формы: Name (имя, идентификатор формы), Caption (надпись - заголовок на форме), Height (высота формы), Width (ширина формы), Top (расстояние от верхней границы формы до верхней границы экрана), Left (расстояние от левого края экрана до левой границы формы) и др. Размеры определяются в пикселях.

Указанные свойства применяются для ряда компонентов среды программирования Delphi [9].

Как правило, все файлы проекта располагают в определенном каталоге (папке).

Как правило достаточно одной формы для размещения элементов проекта, Тем не менее, проекта может быть специфическим и потребовать создание двух и более форм (рис. 1).

Наиболее значительным модулем проекта является окончательное приложение с расширением exe, которое создается путем быстрой компиляции откомпилированных модулей с расширением dcu. Такими модулями являются, к примеру, локальные базы данных, созданные на базе приложений Unit.

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

Рисунок 1 – Структура проекта с двумя формами

Итак, проект, разрабатываемый в среде программирования Delphi представляется совокупностью файлов, используемых компилятором. При этом файл главного модуля Project.dpr (description – описание) является основой проекта и содержит один или несколько модулей (исходя из числа используемых форм). Помимо этого, процесс компиляции использует следующие файлы: файл ресурсов (res), файлы описания форм (отдельный файл для каждой формы с расширением dfm), файл конфигурации проекта (cfg).

Процедуры активизации формы, реализуемая в среде программирования Delphi, позволяют:

  • выполнять рабочие процедуры в нужной последовательности;
  • обеспечивать многократное повторение различных рабочих процедур с различными значениями параметров;
  • производить вывод графической информации в различные окна системы, а также в буфер обмена данных (и перемещения информации из буфера в файлы текстового процессора Microsoft Word, в программы создания презентаций Microsoft Power Point и пр.);
  • переключать элементы вывода информации и др [11].

Представленный перечень действий применяется для активизированных форм с расположенными на ней элементами. Активация форм осуществляется путем генерирования и запуска процедуры активизации формы procedure TForm1.FormActivate(Sender: TObject).

Любые глобальные переменные, которые вводятся в других программах, и на них существует запрос, работают в проекте без дополнительного ввода. Координаты данных переменных устанавливаются непосредственно на форму компонентов – верхний левый угол компонента. Если компоненты устанавливаются на другие компоненты, к примеру, на окно (Image), их координаты следует измерять от левого верхнего угла компонента, на который они устанавливаются, а не от левого верхнего угла формы. Среди таких компонентов можно выделить Edit, Memo, MaskEdit, Button, Panel, Radiobutton и пр [10].

На практике выявлено множество событий, предполагающие определенные реакции формы и установленных на ней элементов, таким образом ответ на каждое событие выполняет соответствующая программа-процедура. В качестве примера подобных событий можно привести одинарный или двойной щелчок по форме, по окну ввода-вывода текста по окну Image и прочим элементам, нажатие или отпускание клавиш клавиатуры или мыши и пр. Наиболее распространенным событием является нажатие на кнопку Button. Так, в ходе разработки программы проекта каждый раз программист создаёт стандартную заготовку для написания определенной процедуры [12].

Практический пример разработки

Постановка задачи

Программа Filemanager предназначена для построения дерева каталогов. Программа позволяет осуществлять поиск файлов в заданном каталоге и его подкаталогах. Поиск можно осуществлять без указания названия файла или его расширения, а также с указанием части названия или/и части расширения файла.

Найденный файл можно выбрать для копирования или удаления.

В программе должен быть реализован следующий функционал:

  • построение дерева каталогов;
  • поиск файлов в указанном каталоге, по параметрам;
  • копирование файлов;
  • удаление файлов.

Входные данные:

  • каталог для поиска;
  • название и расширение файла для поиска;
  • каталог для копирования.

Логическая структура программы представлена на рисунке 2.

Рисунок 2 – Логическая структура программы

Разработка программы

Разработка приложения производилась в два этапа:

  • разработка графического интерфейса;
  • разработка классов и методов работы с файлами.

Графический интерфейс пользователя представлен двумя взаимосвязанными формами, представленными в режиме конструирования на рисунках 3 – 4.

Рисунок 3 – Главная форма приложения frmMain

На главной форме приложения размещен компонент TreeView и MainMenu. Переход в форму работы с файлами осуществляется через главное меню. На рисунке 4 представлена форма работы с файлами.

Рисунок 4 – Форма работы с файлами

На форме работы с файлами представлено поле указания каталога поиска. Кнопка выбора каталога. Поле введения имени файла и расширения файла. Кнопка поиска.

Компонент списка найденных файлов.

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

В главном модуле предусмотрено 7 процедур.

----------------//Процедура создания дерева

procedure TfrmMain.CraeteTree;

const

IconNames: array [0..6] of string = ('CLOSEDFOLDER', 'OPENFOLDER', 'FLOPPY', 'HARD', 'NETWORK', 'CDROM', 'RAM');

var

bm, mask: TBitmap;

i: integer;

diskChar: char;

disk: string;

node: TTreeNode;

DriveType: integer;

begin

tvCatalog.Items.BeginUpdate;

tvCatalog.Images := TImageList.CreateSize(16, 16);

bm := TBitmap.Create;

mask := TBitmap.Create;

for i := low(IconNames) to high(IconNames) do begin

bm.Handle := LoadBitmap(HInstance, PChar(IconNames[i]));

bm.Width := 16;

bm.Height := 16;

mask.Assign(bm);

mask.Mask(clBlue);

tvCatalog.Images.Add(bm, mask);

end;

for diskChar:= 'A' to 'Z' do begin

disk := diskChar + ':';

DriveType := GetDriveType(PChar(disk));

if DriveType = 1 then continue; //Корневой директории не существует

node := tvCatalog.Items.AddChild(nil, disk);

case DriveType of

DRIVE_REMOVABLE: node.ImageIndex := 2; //Съёмный диск

DRIVE_FIXED: node.ImageIndex := 3; //Жёсткий диск

DRIVE_REMOTE: node.ImageIndex := 4; //Сетевой диск

DRIVE_CDROM: node.ImageIndex := 5; //CD-ROM

else node.ImageIndex := 6; //RAM-диск

end;

node.SelectedIndex := node.ImageIndex;

node.HasChildren := true;

end;

tvCatalog.Items.EndUpdate;

end;

----------------//Процедура открытия каталога в дереве и поиска подкаталогов

procedure TfrmMain.OpenCatalog(ParentNode: TTreeNode);

function DirectoryName(name: string): boolean;

begin

result := (name <> '.') and (name <> '..');

end;

var

sr, srChild: TSearchRec;

node: TTreeNode;

path: string;

begin

node := ParentNode;

path := '';

repeat

path := node.Text + '\' + path;

node := node.Parent;

until node = nil;

if FindFirst(path + '*.*', faDirectory, sr) = 0 then begin

repeat

if (sr.Attr and faDirectory <> 0) and DirectoryName(sr.Name) then begin

node := tvCatalog.Items.AddChild(ParentNode, sr.Name);

node.ImageIndex := 0;

node.SelectedIndex := 1;

node.HasChildren := false;

if FindFirst(path + sr.Name + '\*.*', faDirectory, srChild) = 0 then begin

repeat

if (srChild.Attr and faDirectory <> 0) and DirectoryName(srChild.Name)

then node.HasChildren := true;

until (FindNext(srChild) <> 0) or node.HasChildren;

end;

FindClose(srChild);

end

until FindNext(sr) <> 0;

end else ParentNode.HasChildren := false;

FindClose(sr);

end;

----------------//Процедура создания формы

procedure TfrmMain.FormCreate(Sender: TObject);

begin

CraeteTree;

end;

----------------//Процедура раскрытия узла дерева

procedure TfrmMain.tvCatalogExpanding(Sender: TObject; Node: TTreeNode;

var AllowExpansion: Boolean);

begin

tvCatalog.Items.BeginUpdate;

node.DeleteChildren;

OpenCatalog(node);

tvCatalog.Items.EndUpdate;

end;

----------------//Процедура обновления

procedure TfrmMain.btnRefreshClick(Sender: TObject);

begin

tvCatalog.Items.Clear;

CraeteTree;

end;

----------------//Процедура открытия формы работы с файлами

procedure TfrmMain.imFileWorkClick(Sender: TObject);

var

frm: TfrmFiles;

begin

Application.CreateForm(TfrmFiles,frm);

frm.ShowModal;

frm.Free;

end;

----------------//Процедура закрытия приложения

procedure TfrmMain.imCloseClick(Sender: TObject);

begin

Application.Terminate;

end;

В модуле работы с файлами предусмотрены следующие процедуры и функции, относящиеся к самой форме.

----------------//Показ формы

procedure TfrmFiles.FormShow(Sender: TObject);

begin

lbFiles.Clear;

ChoiseFile:=nil;

edtCatalog.Text:='';

edtName.Text:='';

edtExt.Text:='';

edtFilePath.Text:='';

edtFileName.Text:='';

edtFileSize.Text:='';

end;

----------------//Основная процедура поиска

procedure TfrmFiles.FindFile(Dir, FileName, FileExt: string);

Var

I: Integer;

dirList: TStringList;

begin

// dirList:=TStringList.Create;

dirList:=FindDir(Dir);

dirList.Add(Dir);

for I := 0 to dirList.Count-1 do

FindFileDir(dirList.Strings[i],FileName,FileExt);

end;

----------------//Поиск файла в директории

procedure TfrmFiles.FindFileDir(Dir, FileName, FileExt: string);

var SR:TSearchRec;

FindRes:Integer;

begin

if FileName='' then FileName:='*';

if FileExt='' then FileExt:='*';

FindRes:=FindFirst(Dir+FileName+'.'+FileExt,faAnyFile,SR);

While FindRes=0 do

begin

// если найден не каталог, то

if ((SR.Attr and faDirectory)<>faDirectory) then

lbFiles.Items.Add(Dir+SR.Name);

FindRes:=FindNext(SR);

end;

FindClose(SR);

end;

----------------//Составление списка подкаталогов указанного каталога

function TfrmFiles.FindDir(Dir: string): TStringList;

Var SR:TSearchRec;

FindRes:Integer;

begin

Result:=TStringList.Create;

FindRes:=FindFirst(Dir+'*',faDirectory,SR);

While FindRes=0 do

begin

if ((SR.Attr and faDirectory)=faDirectory) and

((SR.Name='.')or(SR.Name='..')) then

begin

FindRes:=FindNext(SR);

Continue;

end;

// если найден каталог, то

if ((SR.Attr and faDirectory)=faDirectory) then

begin

// входим в процедуру поиска с параметрами текущего каталога

// каталог, что мы нашли

Result.Add(Dir+SR.Name+'\');

Result.AddStrings(FindDir(Dir+SR.Name+'\'));

FindRes:=FindNext(SR);

// после осмотра вложенного каталога мы продолжаем поиск

// в этом каталоге

Continue; // продолжить цикл

end;

FindRes:=FindNext(SR);

end;

FindClose(SR);

end;

Реализован класс выбранного файла:

TChoiseFile = class

Filename: string;

FileExt: string;

FilePath: string;

FileSize: Double;

constructor Create(fn: string); overload;

function Copy(path: string): TResult;

function Delete: TResult;

end;

----------------//Обработка события нажатия на кнопку поиска

procedure TfrmFiles.btnSearchClick(Sender: TObject);

var

dir, fileName, fileExt: string;

begin

if (edtCatalog.Text='') or (not DirectoryExists(edtCatalog.Text)) then

ShowMessage('Каталог поиска указан неверно')

else

begin

Dir:=edtCatalog.Text+'\';

fileName:=edtName.Text;

fileExt:=edtExt.Text;

lbFiles.Clear;

FindFile(dir, fileName, fileExt);

end;

end;

----------------//Обработка события нажатия на кнопку открытия файла

procedure TfrmFiles.btnOpenFileClick(Sender: TObject);

begin

if Assigned(ChoiseFile) then

begin

if FileExists(ChoiseFile.FilePath) then

begin

ShellExecute(0,'open',PChar(ChoiseFile.FilePath),'','',SW_SHOW);

end

else

ShowMessage('Выбранный файл был удалён или перемещён');

end;

end;

----------------//Обработка события нажатия на кнопку закрытия формы

procedure TfrmFiles.btnCloseClick(Sender: TObject);

begin

if edtFilePath.Text<>'' then ChoiseFile.Free;

ModalResult:=mrOk;

end;

----------------//Обработка события нажатия на кнопку выбора каталога поиска

procedure TfrmFiles.btnODClick(Sender: TObject);

var

dir: string;

begin

SelectDirectory('Выбор каталога поиска', '', dir);

edtCatalog.Text:=dir;

end;

----------------//Обработка события нажатия на кнопку выбора файла

procedure TfrmFiles.btnChoiseFileClick(Sender: TObject);

begin

if Assigned(ChoiseFile) then ChoiseFile.Free;

ShowMessage(lbFiles.Items[lbFiles.ItemIndex]);

ChoiseFile:=TChoiseFile.Create(lbFiles.Items[lbFiles.ItemIndex]);

edtFileName.Text:=ChoiseFile.FileName;

edtFilePath.Text:=ChoiseFile.FilePath;

edtFileSize.Text:=FloatToStr(ChoiseFile.FileSize)+' Кб.';

end;

----------------//Обработка события нажатия на кнопку удаления файла

procedure TfrmFiles.btnDeleteFileClick(Sender: TObject);

var

res: TResult;

begin

if MessageDlg('Вы действительно хотите удалить файл?',mtWarning,mbOkCancel,0)=mrOk then

begin

res:=ChoiseFile.Delete;

ShowMessage(res.msg);

if res.code<>-1 then begin

edtFilePath.Text:='';

edtFileName.Text:='';

edtFileSize.Text:='';

end;

end;

end;

----------------//Обработка события нажатия на кнопку выбора каталога для копирования файла

procedure TfrmFiles.btnChoiseCatalogToCopyClick(Sender: TObject);

var

dir: string;

begin

SelectDirectory('Выбор каталога назначения', '', dir);

edtCatalogToCopy.Text:=dir;

end;

----------------//Обработка события нажатия на кнопку копирования файла

procedure TfrmFiles.btnCopyFileClick(Sender: TObject);

var

res: TResult;

begin

if edtCatalogToCopy.Text<>'' then begin

res:=ChoiseFile.Copy(edtCatalogToCopy.Text);

ShowMessage(res.msg);

case res.code of

0: edtFilePath.Text:=ChoiseFile.FilePath;

-2: begin

edtFilePath.Text:='';

edtFileName.Text:='';

edtFileSize.Text:='';

ChoiseFile.Free;

end;

end;

end;

end;

Реализация методов класса TChoiseFile представлена ниже.

----------------//Конструктор класса

Constructor TChoiseFile.Create(fn: string);

var

str: string;

fl: integer;

begin

FilePath:=fn;

str:=AnsiReverseString(fn);

self.FileName:=AnsiReverseString(System.Copy(str,Pos('.',str)+1,Pos('\',str)-Pos('.',str)-1));

self.FileExt:=AnsiReverseString(System.Copy(str,1,Pos('.',str)-1));

try

fl:=FileOpen(FilePath, fmOpenRead);

FileSize:= RoundTo(GetFileSize(fl, nil) / 1024,-2);

finally

FileClose(fl);

end;

end;

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

function TChoiseFile.Copy(path: string): TResult;

begin

try

if FileExists(self.FilePath) then begin

Result.code:=0;

if CopyFile(PWideChar(self.FilePath), PWideChar(path+'\'+self.FileName+'.'+self.FileExt), false) then Result.msg:='Файл скопирован';

self.FilePath:=path+'\'+self.FileName+'.'+self.FileExt;

end else

begin

Result.code:=-2;

Result.msg:='Файл был удалён или перемещён';

end;

except

on E : Exception do

begin

Result.msg:=E.Message;

Result.code:=-1;

end;

end;

end;

----------------//Удаление файла

function TChoiseFile.Delete: TResult;

begin

try

if FileExists(self.FilePath) then begin

DeleteFile(self.FilePath);

Result.msg:='Операция удаления выполнена';

Result.code:=0;

end else

begin

Result.code:=-2;

Result.msg:='Файл был удалён или перемещён';

end;

self.Free;

except

on E : Exception do

begin

Result.msg:=E.Message;

Result.code:=-1;

end;

end;

end;

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

program FileManager;

uses

Vcl.Forms,

uMain in 'uMain.pas' {frmMain},

uFiles in 'uFiles.pas' {frmFiles};

{$R *.res}

begin

Application.Initialize;

Application.MainFormOnTaskbar := True;

Application.CreateForm(TfrmMain, frmMain);

Application.Run;

end.

Испытания полученной программы

Методика испытаний

Были выявлены следующие требования к программе:

  1. Построение дерева каталогов при запуске программы.
  2. Обновления дерева каталогов по требованию пользователя.
  3. Поиск файла в заданном каталоге с возможным названием или расширением файла, или без них.
  4. Открытие выбранного файла в приложении по умолчанию для расширения файла.
  5. Копирование выбранного файла с подтверждением выполненной операции.
  6. Удаление выбранного файла с предупреждением пользователя и возможностью отказа от действия и с подтверждением выполненной операции.

Для испытания программы требуется проверить работу по всем требованиям.

Проверка программы

Было проведено ручное испытание разработанной системы по указанным требования к программе.

1. Построение дерева каталогов при запуске программы.

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

Рисунок 5 – Проверка построения дерева каталогов

2. Обновления дерева каталогов по требованию пользователя.

Приложение запущено в этот момент, к компьютеру подключается съёмный носитель – usb-флэш. Для обновления каталогов требуется нажать кнопку «Обновить». Дерево перестраивается и появляется новый каталог съёмного носителя – рисунок 6 (появился диск F:).

Рисунок 6 – Обновление дерева каталога по требованию пользователя

3. Поиск файла в заданном каталоге с возможным названием или расширением файла, или без них.

Для доступа к поиску файлов требуется выбрать в главном меню пункт «Файл» и «Работа с файлами». Для поиска указывается каталог поиска. А также, можно указать расширение файла или его название. После нажатия кнопки «Поиск» все найденные файлы будут отображены в списке поиска – рисунок 7.

Рисунок 7 – Проверка поиска файлов

4. Открытие выбранного файла в приложении по умолчанию для расширения файла.

Для выбора файла в приложении требуется выбрать файл в списке и нажать кнопку «Выбрать файл». В полях появятся данные файла – рисунок 8.

Рисунок 8 – Проверка выбора файла

Для запуска файла в приложении, которое назначено для данного типа файла по умолчанию требуется нажать кнопку «Открыть». Файл будет открыт в своём приложении – рисунок 9.

Рисунок 9 – Проверка открытия файла

5. Копирование выбранного файла с подтверждением выполненной операции.

Для копирования файла требуется указать каталог копирования и нажать кнопку «Копировать». На рисунке 10 представлено подтверждение копирования файла. После удачного копирования выдаётся сообщение о проделанной операции – рисунок 11.

Рисунок 10 – Проверка копирования файла

Рисунок 11 – Подтверждение выполнения операции копирования

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

Для удаления файла требуется нажать кнопку «Удалить», появится окно подтверждения операции пользователем – рисунок 12. При подтверждении файл удаляется и появляется сообщение об успешно выполненной операции удаления – рисунок 13. В окне очищаются данные о выбранном файле – рисунок 14.

Рисунок 12 – Проверка подтверждения операции удаления файла

Рисунок 13 – Проверка сообщения об успешном завершении операции удаления файла

Рисунок 14 – Проверка удаления файла

Заключение

Разработка компьютерных программ – сложное, требующее специальных навыков и опыта дело.

В ходе выполнения курсовой работы были изучены методы объектно-ориентированного программирования на языке Pascal.

Изучена история и ключевые особенности языка Pascal. Изучена современная среда разработки – Delphi.

Изучено создания классов и их методов. Вызов методов классов из интерфейса пользователя. Передача параметров. Области видимости процедур и функций, а также переменных.

Была проведена разработка графического интерфейса пользователя с использование таких элементов как поля, деревья, списки, кнопки, меню.

Была проведена разработка логической структуры программы с реализацией классов.

Интерфейс программы лишь вызывает методы классов и передаёт указанные пользователем параметры.

Таким образом логика действия классов может быть изменена без изменения интерфейса программы. И наоборот, интерфейс программы может быть изменён без изменения логических структур и их методов.

Тем самым, были изучены методики проектирования и разработки приложения в объектно-ориентированной среде разработки.

Список литературы

  1. История языков программирования: Delphi – больше, чем просто язык. [Электронный ресурс]. – URL: https://habr.com/ru/post/316492/
  2. Кирьянов Б.Ф. Основы работы в среде Delphi Учебное пособие для студентов института электронных и информационных систем НовГУ/; НовГУ им. Ярослава Мудрого. − Великий Новгород, 2016 – 72 с.
  3. Краткая история языков программирования. [Электронный ресурс]. – URL: https://www.programm-school.ru/raznoe/kratkaya-istoriya-yazykov-programmirovaniya.html
  4. Культин Н.Б. Основы программирования в Delphi XE. – СПб.: БХВ, 2017. – 416 c.
  5. Липин Ю.Н. Разработка ПО (Delphi) – М.: LAP Publishing, 2017. – 300 с.
  6. Осипов Д. Delphi. Профессиональное программирование. – СПб.: Символ-Плюс, 2006, 1056 с., ил.
  7. Остапенко И.А. Оптимизация работы с помощью записей в среде программирования Delphi // В сб.: Современное состояние и перспективы развития научной мысли. 2015. С. 73-75.
  8. Остапенко И.А. Основные принципы решения задач с многомерными массивами в среде программирования Delphi // Современные образовательные технологии в мировом учебно-воспитательном пространстве. 2016. № 4. С. 34-39.
  9. Паламарчук Л.Н., Смолкин А.Ю., Горохов К.А. Об использовании среды программирования Delphi для реализации некоторых методов численного моделирования // Вестник Южно-Уральского профессионального института. 2016. Т. 1. № 13. С. 108-114.
  10. Полевщиков И.С. Методика освоения особенностей работы с компонентами Memo, Listbox, Combobox при изучении основ программирования с использованием Rad-систем (на примере среды Delphi) // Science Time. 2015. № 7. С. 303-311.
  11. Справочник Delphi. [Электронный ресурс]. – URL: http://www.delphibasics.ru
  12. Файзуллина М.А. Разработка модуля подготовки исходных данных для гидродинамической модели нефтяного месторождения в среде программирования Delphi // Современные научные исследования и инновации. 2016. № 5 (61). С. 57-60.