Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВКР Красковой Н.И.doc
Скачиваний:
19
Добавлен:
05.11.2018
Размер:
1.07 Mб
Скачать

2.2. Разработка логической схемы и реализация алгоритма

2.2.1. Форма поиска файлов

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

procedure NextLevel(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 := Form2.TreeView1.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;

Рис.7. Форма поиска. Отображение структуры каталогов

В левой стороне отображается дерево вложенных папок – каталог данных.

//добавление миниатюр файлов в ListView

for i := 0 to FileListBox1.Items.Count - 1 do

begin

try

bitmap:=TBitmap.Create;

//открытие файла в bitmap

bitmap:=ExtToBmp(path+'\'+FileListBox1.Items[i]);

//установка размеров

dx:=ImageList2.Width/bitmap.Width;

dy:=ImageList2.Height/bitmap.Height;

//уменьшение до миниатюры

bitmap:=interpolate(bitmap,dx,dy);

//добавление нового пункта

item:=listview1.Items.Add;

//установка заголвока

item.Caption:=FileListBox1.Items[i];

//установка иконки из списка изображений

item.ImageIndex:=ImageList2.Add(bitmap,nil);

except

bitmap.Free;

end;

end;

Рис.9. Форма поиска. Отображение миниатюр изображений

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

Форма поиска является основной формой, появляется при запуске .exe-файла. Основной функцией этой формы является поиск файлов (изображений).

Элемент Меню «Файл» - подменю «Открыть»

….

begin

if OpenPictureDialog1.Execute() then

begin

//открытие изображения через OpenFileDialog

form3.hint:=OpenPictureDialog1.FileName;

form3.ShowModal;

end;

Реализуется открытие файла через компонент OpenFileDialog.

Элемент Меню «Файл» - подменю «Закрыть»

procedure TForm3.N4Click(Sender: TObject);

begin

close;

Производится закрытие формы поиска – всей оболочки.

Меню «Справка»

procedure TForm2.N7Click(Sender: TObject);

begin

panel1.Visible:=true;

end;

Рис.7. Справка. Руководство по пользованию

В меню «Справка» дается краткое руководство по пользованию, чтобы пользователь мог быстро и правильно применить данную программу.