• Постановка задачи
  • Разработка формы
  • Разработка программного кода
  • Полный исходный код модуля
  • Глава 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; //показываем рисунок

     end;

    end;

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

    Рис. 6.4. Программа просмотра рисунков в действии

    Полный исходный код модуля

    Полный исходный код модуля программы просмотра рисунков представлен в листинге 6.1.

    Листинг 6.1. Модуль программы просмотра рисунков

    unit Unit1;


    interface


    uses

     Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, ExtCtrls;


    type TForm1 = class(TForm)

     Image1: TImage;

     MainMenu1: TMainMenu;

     N1: TMenuItem;

     N2: TMenuItem;

     N3: TMenuItem;

     N4: TMenuItem;

     N5: TMenuItem;

     N6: TMenuItem;

     N7: TMenuItem;

     Open1: TOpenDialog;

     Save1: TSaveDialog;

     procedure FormCreate(Sender: TObject);

     procedure N2Click(Sender: TObject);

     procedure N3Click(Sender: TObject);

     procedure N5Click(Sender: TObject);

     procedure N7Click(Sender: TObject);

    private

     { Private declarations }

    public

     { Public declarations }

    end;


    var

     Form1: TForm1;


    implementation

    {$R *.dfm}


    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; //показываем рисунок

     end;

    end;


    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;


    procedure TForm1.N3Click(Sender: TObject);

    begin

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

      Image1.Picture.SaveToFile(Save1.FileName)

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

    end;


    procedure TForm1.N5Click(Sender: TObject);

    begin

     Halt; //выход из программы

    end;


    procedure TForm1.N7Click(Sender: TObject);

    begin

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

    end;


    end.

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





     

    Главная | В избранное | Наш E-MAIL | Добавить материал | Нашёл ошибку | Наверх