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.