Чтение онлайн

на главную - закладки

Жанры

Delphi. Учимся на примерах

Парижский Сергей Михайлович

Шрифт:

end;

end.

⊚ Все файлы проекта и исполняемый файл рассмотренной программы находятся на прилагаемом к книге компакт-диске в папке Chapter05.

Глава 6

Программа просмотра рисунков

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

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

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

Разработка формы

Создайте новый проект Delphi. Разместите на форме компонент Image категории Additional, который будет служить для отображения рисунка. Для того чтобы при любых размерах окна рисунок всегда заполнял всю форму, следует изменить значение свойства Align на alClient.

Для вызова диалоговых окон открытия и сохранения рисунка воспользуемся компонентами OpenDialog и SaveDialog категории Dialogs. Присвоим свойству Name этих компонентов значения Open1 и Save1 соответственно. Для обоих компонентов присвойте свойству Filter значение Все файлы|*.*.

Для доступа к функциям программы будем использовать команды меню. Разместите на форме компонент MainMenu категории Standard. Для того чтобы создать пункты меню, следует дважды щелкнуть мышью на компоненте MainMenu1, в результате чего откроется редактор меню, изображенный на рис. 6.1.

Для того чтобы добавить новый пункт, следует щелкнуть мышью в этом окне на пустом элементе меню и изменить в инспекторе объектов значение свойства Caption. Вначале создаются пункты меню, а затем аналогичным образом — подпункты (команды). Для создания разделителей свойству Caption следует присвоить значение - (дефис).

Рис. 6.1. Редактор меню

Создайте меню, соответствующее рис. 6.2.

Рис. 6.2. Меню для программы просмотра рисунков

Вид готовой формы представлен на рис. 6.3.

Рис. 6.3. Форма программы просмотра рисунков

Разработка программного кода

Теперь создадим обработчики события OnClick для пунктов меню. Для команды Файл→Открыть:

procedure TForm1.N2Click(Sender: TObject);

begin

 //начинаем обзор с текущей папки

 Open1.InitialDir:= GetCurrentDir;

 //открываем диалоговое окно выбора файла

 if Open1.Execute then begin

//загружаем выбранный рисунок

Image1.Picture.LoadFromFile(Open1.FileName);

Image1.Show; //отображаем
рисунок на форме

 end

 else //Если рисунок не был выбран

ShowMessage('Вы не выбрали рисунок!');

 Image1.Show;

end;

Здесь мы просто открываем диалоговое окно выбора рисунка, и, если пользователь выбрал рисунок, то загружаем его в компонент Image1 и отображаем на форме.

Обработчик события OnClick для пункта меню Файл→Сохранить:

procedure TForm1.N3Click(Sender: TObject);

begin

 if Save1.Execute then //сохранение рисунка

Image1.Picture.SaveToFile(Save1.FileName)

 else ShowMessage('Рисунок не был сохранен!');

end;

Здесь мы открываем диалоговое окно сохранения рисунка, и, если пользователь выбрал место сохранения файла, извлекаем этот путь (свойство Save1.FileName) и сохраняем отображаемый в данный момент рисунок.

Обработчик события OnClick для пункта меню Файл→Выход:

procedure TForm1.N5Click(Sender: TObject);

begin

 Halt; //завершение работы программы

end;

Обработчик события OnClick для пункта меню Правка→Очистить:

procedure TForm1.N7Click(Sender: TObject);

begin

 Image1.Hide; //прячем рисунок

end;

Единственное, чего не достает этой программе, — это возможность открывать с ее помощью рисунки в файл-менеджерах. Реализуем эту возможность, добавив следующий код в обработчик события OnCreate главной фoрмы.

procedure TForm1.FormCreate(Sender: TObject);

var

 Str:String; //путь к файлу, который поступил как параметр

 i:Integer;

begin

 if (ParamCount > 0)

 then //если на вход программы поступил параметр

 begin

//составляем путь к файлу по символам

Str:= ParamStr(1);

for i:= 2 to ParamCount do Str:= Str + ' ' + ParamStr(i);

Image1.Picture.LoadFromFile(str); //загружаем рисунок

Image1.Show; //показываем рисунок

Поделиться:
Популярные книги

Зубных дел мастер

Дроздов Анатолий Федорович
1. Зубных дел мастер
Фантастика:
научная фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Зубных дел мастер

Бывшие. Война в академии магии

Берг Александра
2. Измены
Любовные романы:
любовно-фантастические романы
7.00
рейтинг книги
Бывшие. Война в академии магии

Идеальный мир для Лекаря 7

Сапфир Олег
7. Лекарь
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 7

Возвышение Меркурия. Книга 3

Кронос Александр
3. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 3

Кодекс Охотника. Книга X

Винокуров Юрий
10. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
6.25
рейтинг книги
Кодекс Охотника. Книга X

Хозяин Теней

Петров Максим Николаевич
1. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней

Опасная любовь командора

Муратова Ульяна
1. Проклятые луной
Фантастика:
фэнтези
5.00
рейтинг книги
Опасная любовь командора

Друд, или Человек в черном

Симмонс Дэн
Фантастика:
социально-философская фантастика
6.80
рейтинг книги
Друд, или Человек в черном

Волхв

Земляной Андрей Борисович
3. Волшебник
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Волхв

Мастер Разума VII

Кронос Александр
7. Мастер Разума
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер Разума VII

Всемирная энциклопедия афоризмов. Собрание мудрости всех народов и времен

Агеева Елена А.
Документальная литература:
публицистика
5.40
рейтинг книги
Всемирная энциклопедия афоризмов. Собрание мудрости всех народов и времен

Сумеречный Стрелок 5

Карелин Сергей Витальевич
5. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 5

Морской волк. 1-я Трилогия

Савин Владислав
1. Морской волк
Фантастика:
альтернативная история
8.71
рейтинг книги
Морской волк. 1-я Трилогия

Прогрессор поневоле

Распопов Дмитрий Викторович
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прогрессор поневоле