405 lines
10 KiB
Plaintext
405 lines
10 KiB
Plaintext
unit Unit1;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, IEMIO, StdCtrls, ImageEnView,
|
|
IEMView, ImageEnIO, Buttons, ImageEnProc, ComCtrls, ExtCtrls, IEOpenSaveDlg, hyiedefs, ieview, hyieutils,
|
|
Menus, printers, imageen, iexBitmaps, iesettings, iexWindowsFunctions, iexLayers, iexRulers;
|
|
|
|
|
|
type
|
|
TForm1 = class(TForm)
|
|
ImageEnMView1: TImageEnMView;
|
|
Panel2: TPanel;
|
|
GroupBox2: TGroupBox;
|
|
SpeedButton2: TSpeedButton;
|
|
Label1: TLabel;
|
|
Edit1: TEdit;
|
|
UpDown1: TUpDown;
|
|
CheckBox3: TCheckBox;
|
|
GroupBox3: TGroupBox;
|
|
CheckBox1: TCheckBox;
|
|
CheckBox2: TCheckBox;
|
|
OpenImageEnDialog1: TOpenImageEnDialog;
|
|
OpenImageEnDialog2: TOpenImageEnDialog;
|
|
SaveImageEnDialog1: TSaveImageEnDialog;
|
|
Label2: TLabel;
|
|
Label3: TLabel;
|
|
Edit2: TEdit;
|
|
Edit3: TEdit;
|
|
MainMenu1: TMainMenu;
|
|
File1: TMenuItem;
|
|
Open1: TMenuItem;
|
|
Save1: TMenuItem;
|
|
N1: TMenuItem;
|
|
Exit1: TMenuItem;
|
|
Scanner1: TMenuItem;
|
|
Selectsource1: TMenuItem;
|
|
Acquirepages1: TMenuItem;
|
|
Edit5: TMenuItem;
|
|
Clear1: TMenuItem;
|
|
Insert1: TMenuItem;
|
|
Append1: TMenuItem;
|
|
Delete1: TMenuItem;
|
|
N3: TMenuItem;
|
|
Copy1: TMenuItem;
|
|
Paste1: TMenuItem;
|
|
Image1: TMenuItem;
|
|
Load1: TMenuItem;
|
|
Effects1: TMenuItem;
|
|
Label4: TLabel;
|
|
Button16: TButton;
|
|
Button15: TButton;
|
|
CheckBox4: TCheckBox;
|
|
Label5: TLabel;
|
|
ComboBox1: TComboBox;
|
|
Label6: TLabel;
|
|
Edit4: TEdit;
|
|
CheckBox5: TCheckBox;
|
|
N4: TMenuItem;
|
|
Print1: TMenuItem;
|
|
Button1: TButton;
|
|
Button2: TButton;
|
|
ProgressBar1: TProgressBar;
|
|
OpenfromURL1: TMenuItem;
|
|
N2: TMenuItem;
|
|
EnableLoggingChk: TMenuItem;
|
|
EnableDuplexChk: TMenuItem;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure SpeedButton2Click(Sender: TObject);
|
|
procedure CheckBox1Click(Sender: TObject);
|
|
procedure CheckBox2Click(Sender: TObject);
|
|
procedure Edit1Change(Sender: TObject);
|
|
procedure CheckBox3Click(Sender: TObject);
|
|
procedure FormActivate(Sender: TObject);
|
|
procedure Edit2Change(Sender: TObject);
|
|
procedure Edit3Change(Sender: TObject);
|
|
procedure Button16Click(Sender: TObject);
|
|
procedure Button15Click(Sender: TObject);
|
|
procedure CheckBox4Click(Sender: TObject);
|
|
procedure Edit4Change(Sender: TObject);
|
|
procedure ComboBox1Change(Sender: TObject);
|
|
procedure Exit1Click(Sender: TObject);
|
|
procedure Open1Click(Sender: TObject);
|
|
procedure Save1Click(Sender: TObject);
|
|
procedure Selectsource1Click(Sender: TObject);
|
|
procedure Acquirepages1Click(Sender: TObject);
|
|
procedure Clear1Click(Sender: TObject);
|
|
procedure Insert1Click(Sender: TObject);
|
|
procedure Append1Click(Sender: TObject);
|
|
procedure Delete1Click(Sender: TObject);
|
|
procedure Copy1Click(Sender: TObject);
|
|
procedure Paste1Click(Sender: TObject);
|
|
procedure Load1Click(Sender: TObject);
|
|
procedure Effects1Click(Sender: TObject);
|
|
procedure CheckBox5Click(Sender: TObject);
|
|
procedure Print1Click(Sender: TObject);
|
|
procedure Button1Click(Sender: TObject);
|
|
procedure Button2Click(Sender: TObject);
|
|
procedure ImageEnMView1FinishWork(Sender: TObject);
|
|
procedure ImageEnMView1Progress(Sender: TObject; per: Integer);
|
|
procedure OpenfromURL1Click(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
{$R WindowsTheme.res}
|
|
|
|
uses
|
|
iexAcquire, iexTransitions;
|
|
|
|
|
|
procedure TForm1.FormCreate(Sender: TObject);
|
|
begin
|
|
ImageEnMView1.SetModernStyling;
|
|
end;
|
|
|
|
// Play
|
|
procedure TForm1.SpeedButton2Click(Sender: TObject);
|
|
begin
|
|
imageenmview1.playing := SpeedButton2.Down;
|
|
end;
|
|
|
|
procedure TForm1.CheckBox1Click(Sender: TObject);
|
|
begin
|
|
if CheckBox1.Checked then
|
|
ImageEnMView1.StoreType := ietThumb
|
|
else
|
|
ImageEnMView1.StoreType := ietNormal;
|
|
end;
|
|
|
|
procedure TForm1.CheckBox2Click(Sender: TObject);
|
|
begin
|
|
ImageEnMView1.VisibleSelection := CheckBox2.Checked;
|
|
end;
|
|
|
|
// Grid columns
|
|
procedure TForm1.Edit1Change(Sender: TObject);
|
|
begin
|
|
ImageEnMView1.GridWidth := strtointdef(edit1.text, 0);
|
|
end;
|
|
|
|
// Auto
|
|
procedure TForm1.CheckBox3Click(Sender: TObject);
|
|
begin
|
|
if checkbox3.checked then
|
|
begin
|
|
edit1.enabled := false;
|
|
ImageEnMView1.GridWidth := -1;
|
|
end
|
|
else
|
|
begin
|
|
edit1.enabled := true;
|
|
ImageEnMView1.GridWidth := strtointdef(edit1.text, 0);
|
|
end;
|
|
end;
|
|
|
|
procedure TForm1.FormActivate(Sender: TObject);
|
|
begin
|
|
Edit2.Text := IntToStr(ImageEnMView1.ThumbWidth);
|
|
Edit3.Text := IntToStr(ImageEnMView1.ThumbHeight);
|
|
ComboBox1.itemindex := 0;
|
|
ImageEnMView1.GridWidth := -1;
|
|
ImageEnMView1.EnableAlphaChannel := true;
|
|
ImageEnMView1.TrackMouseSelection := true;
|
|
|
|
//ImageEnMView1.MIO.AutoAdjustDPI:=true;
|
|
|
|
end;
|
|
|
|
procedure TForm1.Edit2Change(Sender: TObject);
|
|
begin
|
|
ImageEnMView1.ThumbWidth := StrToIntDef(Edit2.Text, 0);
|
|
end;
|
|
|
|
procedure TForm1.Edit3Change(Sender: TObject);
|
|
begin
|
|
ImageEnMView1.ThumbHeight := StrToIntDef(Edit3.Text, 0);
|
|
end;
|
|
|
|
// left frame
|
|
procedure TForm1.Button16Click(Sender: TObject);
|
|
begin
|
|
ImageEnMView1.VisibleFrame := ImageEnMView1.VisibleFrame - 1;
|
|
end;
|
|
|
|
// right frame
|
|
procedure TForm1.Button15Click(Sender: TObject);
|
|
begin
|
|
ImageEnMView1.VisibleFrame := ImageEnMView1.VisibleFrame + 1;
|
|
end;
|
|
|
|
// "single image" checkbox
|
|
procedure TForm1.CheckBox4Click(Sender: TObject);
|
|
begin
|
|
if CheckBox4.Checked then
|
|
ImageEnMView1.DisplayMode := mdSingle
|
|
else
|
|
ImageEnMView1.DisplayMode := mdGrid;
|
|
end;
|
|
|
|
// changes transition duration
|
|
procedure TForm1.Edit4Change(Sender: TObject);
|
|
begin
|
|
ImageEnMView1.TransitionDuration := strtointdef(edit4.text, 1000);
|
|
end;
|
|
|
|
// changes transition
|
|
procedure TForm1.ComboBox1Change(Sender: TObject);
|
|
begin
|
|
ImageEnMView1.TransitionEffect := TIETransitionType(ComboBox1.ItemIndex);
|
|
end;
|
|
|
|
// menu - exit
|
|
procedure TForm1.Exit1Click(Sender: TObject);
|
|
begin
|
|
close;
|
|
end;
|
|
|
|
// menu - File | open...
|
|
procedure TForm1.Open1Click(Sender: TObject);
|
|
var
|
|
idx: integer;
|
|
iFirstNew: Integer;
|
|
begin
|
|
if OpenImageEnDialog2.Execute then
|
|
begin
|
|
ImageEnMView1.Deselect; // to append images
|
|
iFirstNew := ImageEnMView1.ImageCount;
|
|
ImageEnMView1.MIO.LoadFromFileAuto(OpenImageEnDialog2.FileName);
|
|
for idx := iFirstNew to ImageEnMView1.ImageCount - 1 do
|
|
begin
|
|
ImageEnMView1.ImageTopText[idx] := 'Frame ' + inttostr(idx);
|
|
ImageEnMView1.ImageInfoText[idx] := inttostr(ImageEnMView1.ImageWidth[idx]) + ' x ' + inttostr(ImageEnMView1.ImageHeight[idx]);
|
|
ImageEnMView1.ImageBottomText[idx] := ExtractFileName(OpenImageEnDialog2.FileName);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
// menu, File | save...
|
|
procedure TForm1.Save1Click(Sender: TObject);
|
|
begin
|
|
if SaveImageEnDialog1.Execute then
|
|
ImageEnMView1.MIO.SaveToFile(SaveImageEnDialog1.FileName);
|
|
end;
|
|
|
|
// menu, Scanner | select source...
|
|
procedure TForm1.Selectsource1Click(Sender: TObject);
|
|
begin
|
|
ImageEnMView1.MIO.SelectAcquireSource([ieaTwain, ieaWIA, ieaDCIM]);
|
|
end;
|
|
|
|
// menu, scanner | acquire pages
|
|
procedure TForm1.Acquirepages1Click(Sender: TObject);
|
|
begin
|
|
ImageEnmview1.Deselect;
|
|
if ImageEnMView1.MIO.AcquireParams.SelectedSourceApi = ieaTwain then
|
|
begin
|
|
if EnableLoggingChk.Checked then
|
|
ImageEnMView1.MIO.TwainParams.LogFile := WindowsTempFolder() + 'ietwainlog.txt'
|
|
else
|
|
ImageEnMView1.MIO.TwainParams.LogFile := '';
|
|
ImageEnMView1.MIO.TwainParams.FeederEnabled := true;
|
|
ImageEnMView1.MIO.TwainParams.AutoFeed := true;
|
|
ImageEnMView1.MIO.TwainParams.DuplexEnabled := EnableDuplexChk.Checked;
|
|
end;
|
|
ImageEnMView1.MIO.Acquire;
|
|
end;
|
|
|
|
// menu, edit | clear
|
|
procedure TForm1.Clear1Click(Sender: TObject);
|
|
begin
|
|
ImageEnMView1.Clear;
|
|
end;
|
|
|
|
|
|
// menu, edit | insert
|
|
procedure TForm1.Insert1Click(Sender: TObject);
|
|
var
|
|
tempbmp: TBitmap;
|
|
idx: integer;
|
|
begin
|
|
idx := ImageEnMView1.SelectedImage;
|
|
if idx < 0 then
|
|
idx := 0;
|
|
ImageEnMView1.InsertImage(idx);
|
|
tempbmp := TBitmap.create;
|
|
tempbmp.Width := ImageEnMView1.ThumbWidth;
|
|
tempbmp.Height := ImageEnMView1.ThumbHeight;
|
|
tempbmp.PixelFormat := pf24bit;
|
|
ImageEnMView1.SetImage(idx, tempbmp);
|
|
tempbmp.free;
|
|
end;
|
|
|
|
// menu, edit | append
|
|
procedure TForm1.Append1Click(Sender: TObject);
|
|
var
|
|
tempbmp: TBitmap;
|
|
idx: integer;
|
|
begin
|
|
idx := ImageEnMView1.AppendImage;
|
|
tempbmp := TBitmap.create;
|
|
tempbmp.Width := ImageEnMView1.ThumbWidth;
|
|
tempbmp.Height := ImageEnMView1.ThumbHeight;
|
|
tempbmp.PixelFormat := pf24bit;
|
|
ImageEnMView1.SetImage(idx, tempbmp);
|
|
tempbmp.free;
|
|
end;
|
|
|
|
// menu, edit | delete
|
|
procedure TForm1.Delete1Click(Sender: TObject);
|
|
begin
|
|
if ImageEnMView1.SelectedImage >= 0 then
|
|
ImageEnMView1.DeleteSelectedImages;
|
|
//ImageEnMView1.DeleteImage( ImageEnMView1.SelectedImage );
|
|
end;
|
|
|
|
// menu, edit | copy
|
|
procedure TForm1.Copy1Click(Sender: TObject);
|
|
begin
|
|
ImageEnMView1.Proc.CopyToClipboard(true);
|
|
end;
|
|
|
|
// menu, edit | paste
|
|
procedure TForm1.Paste1Click(Sender: TObject);
|
|
begin
|
|
ImageEnMView1.Proc.PasteFromClipboard;
|
|
end;
|
|
|
|
// menu, image | load
|
|
procedure TForm1.Load1Click(Sender: TObject);
|
|
var
|
|
idx: integer;
|
|
begin
|
|
if OpenImageEnDialog1.Execute then
|
|
begin
|
|
idx := ImageEnMView1.SelectedImage;
|
|
if idx>-1 then
|
|
begin
|
|
ImageEnMView1.SetImageFromFile(idx, OpenImageEnDialog1.FileName);
|
|
ImageEnMView1.ImageInfoText[idx] := inttostr(ImageEnMView1.ImageWidth[idx]) + ' x ' + inttostr(ImageEnMView1.ImageHeight[idx]);
|
|
ImageEnMView1.ImageBottomText[idx] := ExtractFileName(OpenImageEnDialog1.FileName);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
// menu, image | effects
|
|
procedure TForm1.Effects1Click(Sender: TObject);
|
|
begin
|
|
ImageEnMView1.Proc.DoPreviews([peAll]);
|
|
end;
|
|
|
|
|
|
// softshadow
|
|
procedure TForm1.CheckBox5Click(Sender: TObject);
|
|
begin
|
|
ImageEnMView1.SoftShadow.Enabled := CheckBox5.Checked;
|
|
ImageEnMView1.Update;
|
|
end;
|
|
|
|
// File|Print
|
|
procedure TForm1.Print1Click(Sender: TObject);
|
|
begin
|
|
ImageEnMView1.MIO.DoPrintPreviewDialog('', false, 'Print preview', true);
|
|
end;
|
|
|
|
// MoveUp
|
|
procedure TForm1.Button1Click(Sender: TObject);
|
|
begin
|
|
ImageEnMView1.MoveImage( ImageEnMView1.SelectedImage, ImageEnMView1.SelectedImage-1 );
|
|
end;
|
|
|
|
// Move Down
|
|
procedure TForm1.Button2Click(Sender: TObject);
|
|
begin
|
|
ImageEnMView1.MoveImage( ImageEnMView1.SelectedImage, ImageEnMView1.SelectedImage+1 );
|
|
end;
|
|
|
|
procedure TForm1.ImageEnMView1Progress(Sender: TObject; per: Integer);
|
|
begin
|
|
ProgressBar1.Position:=per;
|
|
end;
|
|
|
|
procedure TForm1.ImageEnMView1FinishWork(Sender: TObject);
|
|
begin
|
|
ProgressBar1.Position := 0;
|
|
end;
|
|
|
|
// Open From URL
|
|
procedure TForm1.OpenfromURL1Click(Sender: TObject);
|
|
begin
|
|
ImageEnMView1.MIO.LoadFromURL( InputBox('Load From URL','Insert URL','http://') ); // you can also use LoadFromFile
|
|
end;
|
|
|
|
|
|
end.
|