Программирование в Delphi

 

Содержание


Введение

Теоретическая часть и постановка задачи

Структура программы

Заключение

Список использованной литературы

Введение


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

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

Несколько лет назад рядовому программисту оставалось только мечтать о создании собственных программ, работающих в среде Windows, т. к. единственным средством разработки был Borland C++ for Windows, явно ориентированный на профессионалов, обладающих серьезными знаниями и опытом.

Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую "быструю разработку", среди которых можно выделить Borland Delphi и Microsoft Visual Basic. В основе систем быстрой разработки (RAD-систем, Rapid Application Development - среда быстрой разработки приложений) лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть рутинной работы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий. Производительность программиста при использовании RAD-систем - фантастическая!- это среда быстрой разработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi - строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal.

В настоящее время программистам стала доступна очередная версия пакета Delphi - Borland Delphi 7 Studio. Как и предыдущие версии, Borland Delphi 7 Studio позволяет создавать самые различные программы: от простейших однооконных приложений до программ управления распределенными базами. В состав пакета включены разнообразные утилиты, обеспечивающие работу с базами данных, XML-документами, создание справочной системы, решение других задач. Отличительной особенностью седьмой версии является поддержка технологии .NET.


Теоретическая часть и постановка задачи


В компьютерном мире существует большое количество различных программ для просмотра изображений: от встроенной windows-овской до всем известной ACDSee, поддерживающей, кстати, большинство видео форматов. Многие программы имеют в своём составе также edit-оры, фотостудии, которые уменьшают производительность компьютера особенно, если он устарел.

Сколько раз, пытаясь просмотреть изображения на компьютере, ждешь, пока загрузится просмоторщик (родной windows-овский, ACDSee, IfranView или что-нибудь в этом роде) с множеством функций, абсолютно ненужных для просмотра. Как неудобно, когда, листая папку общих рисунков, всё время натыкаешься на чужие фотографии. Гораздо лучше в процессе просмотра создать свою папку, и сбросить туда свои фото.

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

Для этого подходит следующая программа.

При помощи неё вы можете открывать изображения широкого ряда форматов (*.jpg, *.jpeg, *.bmp, *.ico, *.emf, *.wmf) в окне или полноэкранном режиме. В программу встроена функция Презентация, которая позволяет прямо из программы создать папку с последующим сохранением в неё понравившихся рисунков. Программа хорошо защищена от ввода некорректных данных, (будет выдано сообщение об ошибке либо процедура будет просто остановлена) удаления файлов из просматриваемой папки. Каждая процедура перед выполнением каких-либо действий собирает информацию о наличие открытого рисунка, либо о состоянии пунктов Меню, либо о содержимом строки Edit-а. Программа проста в обращении, не занимает много места и не подгружает систему. Недостатки программы в том, что в ней нет сглаживания (все мелкие рисунки видны в клеточку), нет метода Drag-and-Drop, поэтому все изображения приходится открывать через Open или вводить полное имя файла и программа требует некоторой адаптации к той папке, в которую она помещена.


Структура программы


Создание программы начинается с размещения на форме компонентов: Panel1, Panel2, Image1, Edit1, BitBtn1, BitBtn2, Button1, MainMenu1, OpenPictureDialog1, SavePictureDialog1. Они размещаются на форме следующим образом:


Рис. 1


На форму помещается Panel1 - универсальная панель, на которой могут располагаться другие компоненты. На Panel1 помещается компонент Image1, который служит областью для вывода изображений. Сверху размещается Panel2 для вывода комментариев к изображениям. Ниже располагаются две кнопки с возможностью отображения на их поверхности растровых изображений формата *.bmp для прокрутки, далее редактируемая строка Edit1 и кнопка. Произвольным образом на форме размещаются MainMenu1, OpenPictureDialog1, SavePictureDialog1.

Для формы и компонентов задаются параметры:.Caption - заголовок формы, Form1.Color - цвет формы, Form1.Icon - изображение в левом углу строки заголовка, Form1.Position - место размещения формы в начале диалога..Color - цвет панели..Align - при установке значения alClient компонент занимает всю предоставляемую область (в данном случае это Panel1), Image1.Proportional - разрешает пропорционально изменять размеры рисунков..Font - шрифт текста на панели, Panel2.Color - цвет панели, Panel2.Visible - видимость панели.и BitBtn2 akLeft, akRight, akTop, akButtom, которые разрешают или запрещают изменять координаты кнопок при изменении размеров формы, BitBtn1.Cursor - вид курсора при наведении на кнопку, BitBtn1.Glyph, где храниться изображение накладываемое на кнопку при запуске (т.к. этот компонент делает фон рисунка прозрачным исходя из цвета нижнего левого пикселя, то рекомендуется сделать его таким цветом, которого нет в рисунке)

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

Для удобства чтения программы, используемые глобальные переменные имеют следующие обозначения:- ширина формы- высота формы- позиция верхней границы формы- позиция нижней границы формы- открытие файла (да или нет)- адрес папки просматриваемого изображения[1..6] - содержит поддерживаемые расширения файлов- содержит адрес папки просмотра и маску (расширение) файла поиска- полное имя загруженного файла- имя файла для отображения на Panel2- адрес папки для отображения на Panel2- номер файла в папке для отображения на Panel2- буферная переменная для временного хранения имени найденного файла[1..6,1..1400] - массив, содержащий в строках имена найденных файлов (номер строки зависит от расширения).- максимальное количество имён файлов в строке.- максимальное количество строк.[1..1400] - массив, содержащий имена всех найденных файлов водной строке. Компонент Image может отображать только определённые типы изображений, поэтому при создании формы происходит событие:


procedure TForm1.FormCreate(Sender: TObject);: =False;[1]:='*.jpg';[2]:='*.jpeg';[3]:='*.bmp';[4]:='*.ico';[5]:='*.emf';

Mask[6]:='*.wmf';;


Здесь критерию наличия изображения на компоненте Image присваивается значение False (ложь) и создаётся одномерный массив, содержащий поддерживаемые расширения файлов.

Для правильного расположения кнопок прокрутки и отображения имени файла и текущего разрешения изображения создаётся процедура


procedure TForm1.FormResize(Sender: TObject);.Left:=TRUNC(Form1.Width/2)-41;.Left:=TRUNC(Form1.Width/2);.Caption:='Vlad_View '+ExtractFileName(LoadFile)+' ('+IntToStr(Form1.Image1.Width)+' X '+IntToStr(Form1.Image1.Height)+' )';

end;


Создаётся диалоговое меню вида


Рис. 2


Рис. 3


Рис. 4


Изображения для пунктов меню загружаются через инспектор объектов, свойство Bitmap, а горячие клавиши - ShortCut. На выбор пунктов Показывать имя файла, Показывать путь, Показывать номер файла создаются соответственно три обработчика:


procedure TForm1.N9Click(Sender: TObject);N9.Checked=False THEN BEGIN.Checked:=True;:=ExtractFileName(LoadFile);Open=True THEN.Visible:=True;

Panel2.Caption:=ViewPath+ViewName+' '+ViewNumber;.Width:=Length(Panel2.Caption)*6;ELSE.Checked:=False;

ViewName:='';(N10.Checked=False) AND (N11.Checked=False) THEN

Panel2.Visible:=False;.Caption:=ViewPath+ViewName+' '+ViewNumber;.Width:=Length(Panel2.Caption)*6;;;

procedure TForm1.N10Click(Sender: TObject);

beginN10.Checked=False THEN BEGIN.Checked:=True;

ViewPath:=ExtractFilePath(LoadFile);Open=True THEN

Panel2.Visible:=True;.Caption:=ViewPath+ViewName+' '+ViewNumber;.Width:=Length(Panel2.Caption)*6;ELSE.Checked:=False;

ViewPath:='';(N9.Checked=False) AND (N11.Checked=False) THEN

Panel2.Visible:=False;.Caption:=ViewPath+ViewName+' '+ViewNumber;.Width:=Length(Panel2.Caption)*6;

END;;TForm1.N11Click(Sender: TObject);

beginN11.Checked=False THEN BEGIN.Checked:=True;Open=True THEN.Visible:=True;.Caption:=ViewPath+ViewName+' '+ViewNumber;.Width:=Length(Panel2.Caption)*6;ELSE.Checked:=False;

IF (N9.Checked=False) AND (N10.Checked=False) THEN

Panel2.Visible:=False;.Caption:=ViewPath+ViewName;.Width:=Length(Panel2.Caption)*6;;;


После нажатия на один из пунктов, напротив него появляется птичка (свойство Checked), которая определяет - выбран ли пункт. Если хотя бы один из пунктов выбран, и в Image загружено изображение, то Panel2 становиться видимой и на неё выводится информация. Если же выделения снять со всех пунктов, то она опять станет невидимой. Функция Length используется для определения длины строки и задания ширины панели:


Рис. 5


Рис. 6

Диалог начинается с открытия файла просмотра. Для этого используется OpenPictureDialog1:


Рис. 7


procedure TForm1.N2Click(Sender: TObject);

beginOpenPictureDialog1.Execute THEN BEGIN:=True;.Glyph.LoadFromFile('D:\Documents and Settings\USER\Мои документы\BNTU_WORKS\3-ИЙ СЕМЕСТР\ИНФОРМАТИКА\Информатика_курсач\ПРОБА IMAGE\LEFT2.BMP');.Glyph.LoadFromFile('D:\Documents and Settings\USER\Мои документы\BNTU_WORKS\3-ИЙ СЕМЕСТР\ИНФОРМАТИКА\Информатика_курсач\ПРОБА IMAGE\RIGHT2.BMP');.Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);:=ExtractFilePath(OpenPictureDialog1.FileName);:=OpenPictureDialog1.FileName;.Text:=LoadFile;.Enabled:=True;.Caption:='Vlad_View '+ExtractFileName(LoadFile)+' ( '+IntToStr(Form1.Image1.Width)+' X '+IntToStr(Form1.Image1.Height)+' )';N9.Checked=True THEN ViewName:=ExtractFileName(LoadFile);N10.Checked=True THEN ViewPath:=ExtractFilePath(LoadFile);(N9.Checked=True) OR (N10.Checked=True) THEN.Visible:=True;.Caption:=ViewPath+ViewName;.Width:=Length(Panel2.Caption)*6;;;;


При успешном выполнении OpenPictureDialog1 переменной Open присваивается значение True. ПроцедураBitBtn1.Glyph.LoadFromFile изменяет изображение кнопки (из неактивной она становиться активной).


Рис. 8Рис. 9


Проверка свойств Меню-Вид, описанных выше, производится, для того чтобы Panel2 стала активной независимо от времени выбора соответствующих пунктов (до открытия или после).

Для изменения рисунка кнопок прокрутки (нажатая, отпущенная) служат следующие процедуры:


procedure TForm1.BitBtn1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

beginOpen=True THEN.Glyph.LoadFromFile('D:\Documents and Settings\USER\Мои документы\BNTU_WORKS\3-ИЙ СЕМЕСТР\ИНФОРМАТИКА\Информатика_курсач\ПРОБА IMAGE\LEFT3.BMP');;

procedure TForm1.BitBtn1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

beginOpen=True THEN.Glyph.LoadFromFile('D:\Documents and Settings\USER\Мои документы\BNTU_WORKS\3-ИЙ СЕМЕСТР\ИНФОРМАТИКА\Информатика_курсач\ПРОБА IMAGE\LEFT2.BMP');;

procedure TForm1.BitBtn2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

beginOpen=True THEN.Glyph.LoadFromFile('D:\Documents and Settings\USER\Мои документы\BNTU_WORKS\3-ИЙ СЕМЕСТР\ИНФОРМАТИКА\Информатика_курсач\ПРОБА IMAGE\RIGHT3.BMP');;

procedure TForm1.BitBtn2MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

beginOpen=True THEN.Glyph.LoadFromFile('D:\Documents and Settings\USER\Мои документы\BNTU_WORKS\3-ИЙ СЕМЕСТР\ИНФОРМАТИКА\Информатика_курсач\ПРОБА IMAGE\RIGHT2.BMP');;


Рис. 10


В отличие от рисунков, загруженных в кнопки при создании программы и не присутствующих в папке, LEFT2.bmp, LEFT3.bmp, RIGHT2.bmp, RIGHT3.bmp должны находиться в папке программы, и ссылка на них задаётся полным адресом. Обращение к ним как к файлам, находящимся в папке программы, становится невозможным из-за наличия OpenPictureDialog1, в результате чего изменяется директория, выбираемая программой по умолчанию.

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


ВЛЕВОTForm1.BitBtn1Click(Sender: TObject);

VAR I:INTEGER;Open=True THEN BEGIN:=0;:=0;:=0;:=I+1;:=FOLDER+Mask[I];FindFirst(FileNameMask,faAnyFile,FF)=0 THEN BEGIN:=MaxSt+1;[MaxSt,1]:=FF.Name;:=1;Max<J THEN Max:=J;FindNext(FF)=0 DO BEGIN:=J+1;[MaxSt,J]:=FF.Name;Max<J THEN Max:=J;;;I=6;:=0;:=0;I<MaxSt DO BEGIN:=I+1;:=0;:=J+1;FileExists(A[I,J]) THEN BEGIN:=K+1;[K]:=A[I,J];;J=Max;;I:=2 TO K DOFOLDER+B[I]=LoadFile THEN BEGIN.Image1.Picture.LoadFromFile(B[I-1]);:=FOLDER+B[I-1];N14.Checked=False THEN.Text:=LoadFile.Text:=ExtractFilePath(Edit1.Text)+ExtractFileName(LoadFile);:=ExtractFileName(LoadFile);:='['+IntToStr(I-1)+']';N9.Checked=False THEN ViewName:='';N11.Checked=False THEN ViewNumber:='';.Caption:=ViewPath+ViewName+' '+ViewNumber;.Width:=Length(Panel2.Caption)*6;.Caption:='Vlad_View '+ExtractFileName(LoadFile)+' ( '+IntToStr(Form1.Image1.Width)+' X '+IntToStr(Form1.Image1.Height)+' )';;;;;

ВПРАВОTForm1.BitBtn2Click(Sender: TObject);I:INTEGER;Open=True THEN BEGIN:=0;:=0;:=0;:=I+1;:=FOLDER+Mask[I];FindFirst(FileNameMask,faAnyFile,FF)=0 THEN BEGIN:=MaxSt+1;[MaxSt,1]:=FF.Name;:=1;Max<J THEN Max:=J;FindNext(FF)=0 DO BEGIN:=J+1;[MaxSt,J]:=FF.Name;Max<J THEN Max:=J;;;I=6;:=0;:=0;I<MaxSt DO BEGIN:=I+1;:=0;:=J+1;FileExists(A[I,J]) THEN BEGIN:=K+1;[K]:=A[I,J];;J=Max;;I:=1 TO K-1 DOFOLDER+B[I]=LoadFile THEN BEGIN.Image1.Picture.LoadFromFile(B[I+1]);:=FOLDER+B[I+1];N14.Checked=False THEN.Text:=LoadFile.Text:=ExtractFilePath(Edit1.Text)+ExtractFileName(LoadFile);:=ExtractFileName(LoadFile);:='['+IntToStr(I+1)+']';N9.Checked=False THEN ViewName:='';N11.Checked=False THEN ViewNumber:='';.Caption:=ViewPath+ViewName+' '+ViewNumber;.Width:=Length(Panel2.Caption)*6;.Caption:='Vlad_View '+ExtractFileName(LoadFile)+' ( '+IntToStr(Form1.Image1.Width)+' X '+IntToStr(Form1.Image1.Height)+' )';

Exit;;;;


Переменная I объявлена локально, т. к. она задействована в процедуре FOR. Функция FindFirst(FileNameMask,faAnyFile,FF) переменной FF присваивает имя первого найденного файла, соответствующего маске FileNameMask и атрибуту faAnyFile (любой файл). Также существуют скрытые, архивные и файлы только для чтения. Функция FindNext(FF) находит следующий файл (после FF) и присваивает его значение FF. Обе этих функции при успешном поиске дают значение, равное 0. Только в этом случае имена найденных файлов записываются в строки массива (первая строка - '*.jpg', вторая - '*.jpeg', третья - '*.bmp', четвёртая - '*.ico', пятая - '*.emf', шестая - '*.wmf'). Затем этот массив преобразуется в однострочный. Далее идёт проверка - находится ли программа в режиме презентации, и если нет, то в Edit1 выводится полное имя загруженного файла. В противном случае в Edit1 выводится уже написанный адрес папки плюс имя открытого файла (ExtractFilePath(Edit1.Text)+ExtractFileName(LoadFile)). Также присваиваются значения ViewName и ViewNumber для Panel2.Caption.

Аналогичные процедуры описываются для вращения колёсика мыши.

Режим презентации включается Меню - Вид - Презентация либо по нажатию F5. Кнопка активна только, если открыт файл:

TForm1.N14Click(Sender: TObject);

beginOpen=True THEN BEGINN14.Checked=False THEN.Checked:=True;.Caption:='Добавить';ELSE.Checked:=False;.Caption:='Показать';.Text:='';

END;;;


В режиме презентации Edit1 и Button1 меняют своё назначение: в строке указывается директория (ее может ещё не существовать) и имя файла (обязательное соответствие его расширения с расширением открытого файла), а кнопка 'Показать' меняется на кнопку 'Добавить':


procedure TForm1.Button1Click(Sender: TObject);I,J:BYTE;N14.Checked=False THENFileExists(Edit1.Text) THEN BEGIN:=True;.Glyph.LoadFromFile('D:\Documents and Settings\USER\Мои документы\BNTU_WORKS\3-ИЙ СЕМЕСТР\ИНФОРМАТИКА\Информатика_курсач\ПРОБА IMAGE\LEFT2.BMP');.Glyph.LoadFromFile('D:\Documents and Settings\USER\Мои документы\BNTU_WORKS\3-ИЙ СЕМЕСТР\ИНФОРМАТИКА\Информатика_курсач\ПРОБА IMAGE\RIGHT2.BMP');.Image1.Picture.LoadFromFile(Edit1.Text);:=Edit1.Text;.Enabled:=True;.Caption:='Vlad_View '+ExtractFileName(LoadFile)+' ( '+IntToStr(Form1.Image1.Width)+' X '+IntToStr(Form1.Image1.Height)+' )';:=ExtractFilePath(LoadFile);('Указанный Вами файл НЕ существует')Edit1.Text='' THEN('Задайте имя файла');;;Edit1.Text=ExtractFilePath(Edit1.Text) THENI:=1 TO 150 DO BEGINEdit1.Text[I]='\' THEN(COPY(ExtractFilePath(Edit1.Text),1,I));;BEGINAnsiLowerCase(ExtractFileExt(Edit1.Text)) = AnsiLowerCase(ExtractFileExt(LoadFile)) THENJ:=1 TO 150 DOEdit1.Text[J]='\' THEN(COPY(ExtractFilePath(Edit1.Text),1,J));FileExists(Edit1.Text) THEN BEGIN

IF MessageDlg('Указанный вами файл уже существует. Заменить?',mtWarning,[mbYes,mbNo],0)=mrYes THEN.Picture.SaveToFile(Edit1.Text);.Picture.SaveToFile(Edit1.Text); ELSE('Неверно указано имя файла');;;

end;


Таким образом, при нажатии «Добавить» в указанную директорию (если её не существует, она создаётся) будет сохранён открытый файл под указанным именем (по умолчанию записывается оригинальное имя файла, но его можно изменить). Для создания директории используется функция MKDir, но т. к. она создаёт только одну папку в уже существующей, то функция применяется в следующем виде MKDir (COPY(ExtractFilePath(Edit1.Text),1,J)), где функция COPY (ExtractFilePath(Edit1.Text),1,J) используется для вырезания из полного имени файла адрес существующей папки плюс одна, которую нужно создать. Для возможности сохранения файлов с расширением, записанным заглавными буквами, в проверке соответствия расширения используется функция AnsiLowerCase(text), которая изменяет все заглавные буквы в строке на прописные. Если файл существует то будет предложено заменить его или нет. Для этого используется функция MessageDlg('Указанный вами файл уже существует. Заменить?',mtWarning,[mbYes,mbNo],0), которая может принимать значения mrYes или mrNo.


Рис. 11


Если же программа не находится в режиме презентации, то по нажатию 'Показать' будет открыт указанный в строке файл (полное имя файла), если он существует. В противном случае будет выдано сообщение. Также в процедуре описаны стандартные (смотри OpenPictureDialog1) действия для изменения вида кнопок, просмотра адреса и имени файла на Panel2.

Программа поддерживает полноэкранный режим, который вызывается: Меню-Вид-Во весь экран, нажатием Enter либо двойным щелчком по Image1:


procedure TForm1.Image1DblClick(Sender: TObject);Form1.WindowState=wsNormal THEN BEGIN:=Form1.Width;:=Form1.Height;:=Form1.Top;:=Form1.Left;.BorderStyle:=bsNone;.WindowState:=wsMaximized;.Visible:=False;.Visible:=False;.Visible:=False;.Visible:=False;.Visible:=False;.Visible:=False;.Visible:=False;.Height:=Form1.Height;BEGIN.BorderStyle:=bsSizEable;.WindowState:=wsNormal;.Width:=FormWidth;.Height:=FormHeight;.Top:=FormTop;.Left:=FormLeft;.Visible:=True;.Visible:=True;.Visible:=True;.Height:=Form1.Height-174;.Visible:=True;.Visible:=True;.Visible:=True;.Visible:=True;;;


Она работает следующим образом: если полноэкранный режим не включён, то:

запоминаются параметры окна (положение, ширина и высота формы)

изменяя свойство Form1.BorderStyle убирается рамка и заголовок формы, а Form1.WindowState - делает размеры формы максимальными

все компоненты формы, кроме Panel1, Image1 и Panel2 делаются невидимыми, а высота Panel1 становится равной высоте формы.

Если полноэкранный режим включён, то:

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

восстанавливаются запомненные параметры окна

все компоненты становятся видимыми, а высота Panel1 отличается от высоты формы на 174.

В программе есть возможность сохранять одиночные файлы стандартным образом Меню-Файл-Сохранить как...:


procedure TForm1.N4Click(Sender: TObject);Open=True THEN BEGINAnsiLowerCase(ExtractFileExt(LoadFile))='.jpg' THEN.Filter:='JPEG Image File (*.jpg)|*.jpg|' ELSEAnsiLowerCase(ExtractFileExt(LoadFile))='.jpeg' THEN.Filter:='JPEG Image File (*.jpeg)|*.jpeg|' ELSEAnsiLowerCase(ExtractFileExt(LoadFile))='.bmp' THEN.Filter:='Bitmaps (*.bmp)|*.bmp|' ELSEAnsiLowerCase(ExtractFileExt(LoadFile))='.ico' THEN.Filter:='Icons (*.ico)|*.ico|' ELSEAnsiLowerCase(ExtractFileExt(LoadFile))='.emf' THEN.Filter:='Enhanced Metafiles (*.emf)|*.emf|' ELSEAnsiLowerCase(ExtractFileExt(LoadFile))='.wmf' THEN.Filter:='Metafiles (*.wmf)|*.wmf';.FileName:=LoadFile;SavePictureDialog1.Execute THENFileExists(SavePictureDialog1.FileName) AND (AnsiLowerCase(ExtractFileExt(SavePictureDialog1.FileName))=AnsiLowerCase(ExtractFileExt(LoadFile))) THEN BEGIN

IF MessageDlg('Указанный вами файл уже существует. Заменить?',mtWarning,[mbYes,mbNo],0)=mrYes THEN.Picture.SaveToFile(SavePictureDialog1.FileName);;ExtractFileExt(SavePictureDialog1.FileName)=ExtractFileExt(LoadFile) THEN.Picture.SaveToFile(SavePictureDialog1.FileName);;ELSEExtractFileExt(SavePictureDialog1.FileName)='' THEN.Picture.SaveToFile (SavePictureDialog1.File Name+ExtractFileExt (LoadFile));;ELSE('Неверно указан тип файла');

Exit;;;


Данная программа не является редактором или преобразователем изображений, поэтому в процедуре сохранения файла для каждого типа файла создаётся свой фильтр SavePictureDialog1.Filter, в который записывается только одно расширение для данного открытого файла. По умолчанию предлагается сохранить файл под тем же именем и в ту же папку. Если файл существует, то будет предложено заменить его. Если было принудительно введено разрешение, не соответствующее фильтру - будет выдано сообщение.

На вызов пунктов справки выполняется только одно действие - сообщение:

программа переменная презентация справка

procedure TForm1.N16Click(Sender: TObject);

begin('Данная программа предназначена для просмотра изображений практически всех форматов. Она не загромождена лишними функциями и не занимает много места.');

end;TForm1.N17Click(Sender: TObject);

begin('В режиме презентации необходимо вводить адрес папки с завершающим символом \ (слеш) либо полное имя файла');

end;TForm1.N18Click(Sender: TObject);

begin('Программу составил студент БНТУ Гр. 113314 Селянтьев В.А. Программа не имеет лицензионного соглашения и распространяется в свободном виде. Отзывы и предложения по программе присылайте по адресу: vlad_user@mail.ru');.


По нажатию Меню-Файл-Выход или горячих клавиш Alt+F4 программа закрывается:

procedure TForm1.N12Click(Sender: TObject);

begin;;

Заключение


Мы получили программу для просмотра изображений с возможностью просматривать все файлы картинок, находящиеся в папке, создавать свои папки и сохранять в них нужные изображения. Эта программа удобна в том случае, когда параллельно выполнению какого-либо объемного процесса выполняется эта программа, практически не влияя на основной процесс, а также для тех, у кого ещё сохранились компьютеры с низкой производительностью.

Для тех, кто хочет создать свою программу для просмотра изображений, советую добавить в неё Drag-and-Drop и сглаживание, а также возможность объявлять программу как приложение файлов рисунков.


Список использованной литературы


1.Фаронов В.В. Delphi6: Учебный курс. - Москва, 2001.

2.Кнут Д. Искусство программирования: Т1 Основные алгоритмы. - 3-е изд. Москва: Вильямс, 2000.



Содержание Введение Теоретическая часть и постановка задачи Структура программы Заключение Список использованной литературы Введение

Больше работ по теме:

Предмет: Информационное обеспечение, программирование

Тип работы: Контрольная работа

Новости образования

КОНТАКТНЫЙ EMAIL: MAIL@SKACHAT-REFERATY.RU

Скачать реферат © 2018 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ