Теперь создадим обработчики события 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.
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