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