177 lines
4.2 KiB
Plaintext
177 lines
4.2 KiB
Plaintext
unit umain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, ieview, ImageEnView, ImageEnProc,
|
|
hyiedefs, ImageEnIO, hyieutils, iexBitmaps, iesettings, StdCtrls, ExtCtrls, iexLayers,
|
|
iexRulers;
|
|
|
|
type
|
|
TForm1 = class(TForm)
|
|
ImageEnView1: TImageEnView;
|
|
MainMenu1: TMainMenu;
|
|
File1: TMenuItem;
|
|
Open1: TMenuItem;
|
|
N1: TMenuItem;
|
|
Exit1: TMenuItem;
|
|
Edit1: TMenuItem;
|
|
Undo1: TMenuItem;
|
|
Redo1: TMenuItem;
|
|
Effects1: TMenuItem;
|
|
Negative1: TMenuItem;
|
|
ConverttoGray1: TMenuItem;
|
|
FlipHorizontal1: TMenuItem;
|
|
FlipVertical1: TMenuItem;
|
|
Equalize1: TMenuItem;
|
|
pnlRight: TPanel;
|
|
lblUndoList: TLabel;
|
|
lbxUndo: TListBox;
|
|
Rotate901: TMenuItem;
|
|
Rotate1801: TMenuItem;
|
|
Rotate2701: TMenuItem;
|
|
N2: TMenuItem;
|
|
N3: TMenuItem;
|
|
ColorsandEffects1: TMenuItem;
|
|
lblRedoList: TLabel;
|
|
lbxRedo: TListBox;
|
|
procedure ColorsandEffects1Click(Sender: TObject);
|
|
procedure Exit1Click(Sender: TObject);
|
|
procedure Open1Click(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure Undo1Click(Sender: TObject);
|
|
procedure Redo1Click(Sender: TObject);
|
|
procedure Negative1Click(Sender: TObject);
|
|
procedure ConverttoGray1Click(Sender: TObject);
|
|
procedure FlipHorizontal1Click(Sender: TObject);
|
|
procedure FlipVertical1Click(Sender: TObject);
|
|
procedure Equalize1Click(Sender: TObject);
|
|
procedure ImageEnView1ImageChange(Sender: TObject);
|
|
procedure lbxRedoDblClick(Sender: TObject);
|
|
procedure lbxUndoDblClick(Sender: TObject);
|
|
procedure Rotate2701Click(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
procedure UpdateMenu;
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
{$R WindowsTheme.res}
|
|
|
|
|
|
procedure TForm1.ColorsandEffects1Click(Sender: TObject);
|
|
begin
|
|
ImageEnView1.Proc.DoPreviews;
|
|
end;
|
|
|
|
procedure TForm1.Exit1Click(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
procedure TForm1.Open1Click(Sender: TObject);
|
|
begin
|
|
ImageEnView1.io.LoadFromFile(ImageEnView1.io.ExecuteOpenDialog('', '', false, 1, ''));
|
|
ImageEnView1.Proc.ClearAllUndo;
|
|
ImageEnView1.Proc.ClearAllRedo;
|
|
UpdateMenu;
|
|
end;
|
|
|
|
procedure TForm1.FormCreate(Sender: TObject);
|
|
begin
|
|
ImageEnView1.Proc.UndoLimit := 10; // 10 levels of undo
|
|
end;
|
|
|
|
procedure TForm1.Negative1Click(Sender: TObject);
|
|
begin
|
|
ImageEnView1.Proc.Negative;
|
|
end;
|
|
|
|
procedure TForm1.ConverttoGray1Click(Sender: TObject);
|
|
begin
|
|
ImageEnView1.Proc.ConvertToGray;
|
|
end;
|
|
|
|
procedure TForm1.FlipHorizontal1Click(Sender: TObject);
|
|
begin
|
|
ImageEnView1.Proc.Flip(fdHorizontal);
|
|
end;
|
|
|
|
procedure TForm1.FlipVertical1Click(Sender: TObject);
|
|
begin
|
|
ImageEnView1.Proc.Flip(fdVertical);
|
|
end;
|
|
|
|
procedure TForm1.Equalize1Click(Sender: TObject);
|
|
begin
|
|
ImageEnView1.Proc.HistAutoEqualize;
|
|
end;
|
|
|
|
procedure TForm1.ImageEnView1ImageChange(Sender: TObject);
|
|
begin
|
|
UpdateMenu;
|
|
end;
|
|
|
|
procedure TForm1.lbxRedoDblClick(Sender: TObject);
|
|
begin
|
|
if lbxRedo.ItemIndex > -1 then
|
|
ImageEnView1.Proc.RedoAt( lbxRedo.ItemIndex, True );
|
|
end;
|
|
|
|
procedure TForm1.lbxUndoDblClick(Sender: TObject);
|
|
begin
|
|
if lbxUndo.ItemIndex > -1 then
|
|
ImageEnView1.Proc.UndoAt( lbxUndo.ItemIndex, True );
|
|
end;
|
|
|
|
procedure TForm1.Undo1Click(Sender: TObject);
|
|
begin
|
|
ImageEnView1.Proc.Undo( True );
|
|
end;
|
|
|
|
procedure TForm1.Redo1Click(Sender: TObject);
|
|
begin
|
|
ImageEnView1.Proc.Redo( True );
|
|
end;
|
|
|
|
procedure TForm1.Rotate2701Click(Sender: TObject);
|
|
begin
|
|
ImageEnView1.Proc.Rotate(( Sender as TMenuItem).Tag );
|
|
end;
|
|
|
|
procedure TForm1.UpdateMenu;
|
|
var
|
|
I: Integer;
|
|
begin
|
|
// Undo menu
|
|
Undo1.Enabled := ImageEnView1.Proc.CanUndo;
|
|
if ImageEnView1.Proc.CanUndo then
|
|
Undo1.Caption := 'Undo ' + ImageEnView1.Proc.UndoCaptions[0]
|
|
else
|
|
Undo1.Caption := 'Undo';
|
|
|
|
// Redo menu
|
|
Redo1.Enabled := ImageEnView1.Proc.CanRedo;
|
|
if ImageEnView1.Proc.CanRedo then
|
|
Redo1.Caption := 'Redo ' + ImageEnView1.Proc.RedoCaptions[0]
|
|
else
|
|
Redo1.Caption := 'Redo';
|
|
|
|
// Output Undo and Redo lists
|
|
lbxUndo.Clear;
|
|
for I := 0 to ImageEnView1.Proc.UndoCount - 1 do
|
|
lbxUndo.Items.Add( ImageEnView1.Proc.UndoCaptions[ i ]);
|
|
lbxRedo.Clear;
|
|
for I := 0 to ImageEnView1.Proc.RedoCount - 1 do
|
|
lbxRedo.Items.Add( ImageEnView1.Proc.RedoCaptions[ i ]);
|
|
end;
|
|
|
|
end.
|