unit Main; interface uses Windows, SysUtils, Classes, Graphics, Forms, Controls, Menus, StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls, ToolWin, ImgList, iexActions, ActnList, ieview, imageenview, StdActns, hyiedefs, iesettings, hyieutils, iexBitmaps, iexLayers, iexRulers; type TMainForm = class(TForm) MainMenu1: TMainMenu; StatusBar: TStatusBar; PopupMenu1: TPopupMenu; N3: TMenuItem; Cut1: TMenuItem; Copy1: TMenuItem; Paste1: TMenuItem; ActionList1: TActionList; ImageEnView1: TImageEnView; mnuView: TMenuItem; mnuEdit: TMenuItem; ZoomIn: TImageEnViewZoomIn; ZoomOut: TImageEnViewZoomOut; AutoShrink: TImageEnViewAutoShrink; AutoStretch: TImageEnViewAutoStretch; Blank: TImageEnViewBlank; DeSelect: TImageEnViewDeSelect; Fit: TImageEnViewFit; FitToHeight: TImageEnViewFitToHeight; FitToWidth: TImageEnViewFitToWidth; ZoomFullSize: TImageEnViewZoomFullSize; FitImage1: TMenuItem; FitImagetoHeight1: TMenuItem; FitImagetoWidth1: TMenuItem; N9: TMenuItem; ZoomIn2: TMenuItem; ZoomOut2: TMenuItem; ZoomtoFullSize1: TMenuItem; N12: TMenuItem; AutoShrink1: TMenuItem; AutoStretch1: TMenuItem; Delect1: TMenuItem; N14: TMenuItem; N15: TMenuItem; MouseMovingScroll: TImageEnViewMouseMovingScroll; MouseScroll: TImageEnViewMouseScroll; MouseSelect: TImageEnViewMouseSelect; MouseSelectCircle: TImageEnViewMouseSelectCircle; MouseSelectLasso: TImageEnViewMouseSelectLasso; MouseSelectMagicWand: TImageEnViewMouseSelectMagicWand; MouseSelectPolygon: TImageEnViewMouseSelectPolygon; MouseSelectZoom: TImageEnViewMouseSelectZoom; MouseZoom: TImageEnViewMouseZoom; mnuMouse: TMenuItem; ScrolltoCursor1: TMenuItem; ScrollImage1: TMenuItem; RectangularSelect1: TMenuItem; CircularSelect1: TMenuItem; LassoSelect1: TMenuItem; SelectbyColor1: TMenuItem; PolygonSelect1: TMenuItem; ZoomtoSelection1: TMenuItem; Action11: TMenuItem; N16: TMenuItem; N18: TMenuItem; ConvertToGray: TImageEnViewConvertToGray; CopyToClipboard: TImageEnViewCopyToClipboard; FlipHorizontal: TImageEnViewFlipHorizontal; FlipVertical: TImageEnViewFlipVertical; HistAutoEqualize: TImageEnViewHistAutoEqualize; Negative: TImageEnViewNegative; PasteFromClipboard: TImageEnViewPasteFromClipboard; Redo: TImageEnViewRedo; RemoveRedEyes: TImageEnViewRemoveRedEyes; Rotate180: TImageEnViewRotate180; Sharpen: TImageEnViewSharpen; Undo: TImageEnViewUndo; Deselect1: TMenuItem; mnuImage: TMenuItem; ConverttoGray1: TMenuItem; CopytoClipboard1: TMenuItem; AdjustImageColors1: TMenuItem; FlipHorizontal1: TMenuItem; FlipVertical1: TMenuItem; AutoEqualizeColors1: TMenuItem; Negative2: TMenuItem; PastefromClipboard1: TMenuItem; Redo1: TMenuItem; Undo2: TMenuItem; RemoveRedEyes2: TMenuItem; RotateRight1: TMenuItem; Rotate1801: TMenuItem; RotateLeft1: TMenuItem; CutSelection1: TMenuItem; Sharpen1: TMenuItem; N19: TMenuItem; N20: TMenuItem; N21: TMenuItem; N22: TMenuItem; N23: TMenuItem; Crop: TImageEnViewCrop; N24: TMenuItem; CroptoSelection1: TMenuItem; Acquire: TImageEnViewAcquire; DoIOPreviews: TImageEnViewDoIOPreviews; DoPrintPreviewDialog: TImageEnViewDoPrintPreviewDialog; PrintImageFitToPage: TImageEnViewPrintImageFitToPage; PrintImageNormal: TImageEnViewPrintImageNormal; Save: TImageEnViewSave; PromptToOpen: TImageEnViewPromptToOpen; PromptToSave: TImageEnViewPromptToSave; SeekFirst: TImageEnViewSeekFirst; SeekLast: TImageEnViewSeekLast; SeekNext: TImageEnViewSeekNext; SeekPrior: TImageEnViewSeekPrior; SelectAcquireSource: TImageEnViewSelectAcquireSource; mnuFile: TMenuItem; Acquire2: TMenuItem; SaveProperties1: TMenuItem; PrintPreview2: TMenuItem; PrinttoPage1: TMenuItem; Print2: TMenuItem; Save1: TMenuItem; Open1: TMenuItem; Saveas1: TMenuItem; FirstFrame1: TMenuItem; LastFrame1: TMenuItem; NextFrame1: TMenuItem; PreviousFrame1: TMenuItem; SelectAcquisitionSource1: TMenuItem; N25: TMenuItem; N26: TMenuItem; N27: TMenuItem; N28: TMenuItem; DoAdjustPreviews: TImageEnViewDoAdjustPreviews; DoEffectPreviews: TImageEnViewDoEffectPreviews; DoEditPreviews: TImageEnViewDoEditPreviews; ImageEffects1: TMenuItem; EditImage1: TMenuItem; N2: TMenuItem; Playing: TImageEnViewPlaying; PlayLoop: TImageEnViewPlayLoop; Animateimage1: TMenuItem; LoopPlayback1: TMenuItem; N4: TMenuItem; RotateLeft: TImageEnViewRotateLeft; RotateRight: TImageEnViewRotateRight; ImageList1: TImageList; EnableAdjustOrientation: TImageEnViewEnableAdjustOrientation; AutoRotateDisplay1: TMenuItem; ExitApp: TFileExit; Exit2: TMenuItem; mnuLanguage: TMenuItem; SetZoom200: TImageEnViewSetZoom; SetZoom25: TImageEnViewSetZoom; SetZoom50: TImageEnViewSetZoom; SetZoom75: TImageEnViewSetZoom; SetZoom150: TImageEnViewSetZoom; PromptToResize: TImageEnViewPromptToResize; N7: TMenuItem; Zoomto501: TMenuItem; Zoomto502: TMenuItem; Zoomto503: TMenuItem; RotateImage1: TMenuItem; ResizeImage1: TMenuItem; N8: TMenuItem; Zoomto2001: TMenuItem; Zoomto751: TMenuItem; PromptToRotate: TImageEnViewPromptToRotate; ShowRulers: TImageEnViewShowRulers; RulerUnitPixels: TImageEnViewRulerUnitPixels; RulerUnitInches: TImageEnViewRulerUnitInches; RulerUnitMillimeters: TImageEnViewRulerUnitMillimeters; RulerUnitCentimeters: TImageEnViewRulerUnitCentimeters; N11: TMenuItem; ShowRulers1: TMenuItem; RulerUnits1: TMenuItem; Pixels1: TMenuItem; Inches1: TMenuItem; Millimeters1: TMenuItem; Centimeters1: TMenuItem; CropToolEnable: TImageEnViewCropToolEnable; CropToolEnactCrop: TImageEnViewCropToolEnactCrop; CropToolCancelCrop: TImageEnViewCropToolCancelCrop; CutToClipboard: TImageEnViewCutToClipboard; EnableCropping1: TMenuItem; CroptoSelection2: TMenuItem; CancelCropping1: TMenuItem; N1: TMenuItem; procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure ImageEnView1FinishWork(Sender: TObject); procedure ImageEnView1Progress(Sender: TObject; per: Integer); procedure ImageEnView1ViewChange(Sender: TObject; Change: Integer); procedure LanguageClick(Sender: TObject); private { Private declarations } procedure CreateLanguageMenuItems; public { Public declarations } end; var MainForm: TMainForm; implementation {$R *.DFM} {$R WindowsTheme.res} uses iexRegistryFunctions, imageenproc; const // Enable to store the settings Save_Settings_To_Registry = False; Demo_Registry_Path ='\Software\ImageEn\ActionsDemo\'; procedure TMainForm.FormCreate(Sender: TObject); begin // Common settings for TImageEnView with ImageEnView1 do begin AutoShrink := True; // Make the image fit within the window BorderStyle := bsNone; // Normally don't require a 3D border ZoomFilter := rfFastLinear; // Use better quality drawing when the image is not 100%, Use rfFastLinear for best speed or rfLanczos3 for best quality MouseInteract := [miSelect]; // What action should the mouse do? LegacyBitmap := False; // Support bigger files and multithreading Proc.UndoLimit := 30; // Save 30 undo operations end; if Save_Settings_To_Registry then ImageEnView1.LoadFromRegistry(Demo_Registry_Path); // Display the type of Undo/Redo that will be performed Undo.ShowUndoAction := true; Redo.ShowRedoAction := true; CreateLanguageMenuItems; end; procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction); begin if Save_Settings_To_Registry then ImageEnView1.SaveToRegistry(Demo_Registry_Path); end; procedure TMainForm.ImageEnView1FinishWork(Sender: TObject); begin Cursor := crDefault; StatusBar.Panels[1].Text := ''; end; procedure TMainForm.ImageEnView1Progress(Sender: TObject; per: Integer); begin StatusBar.Panels[1].Text := 'Processing: ' + IntToStr(per) + '%'; StatusBar.Update; Cursor := crHourglass; end; procedure TMainForm.CreateLanguageMenuItems; var aLang : TMsgLanguage; NewItem: TMenuItem; begin mnuLanguage.Clear; for aLang := Low(TMsgLanguage) to High(TMsgLanguage) do begin NewItem := TMenuItem.Create(Self); NewItem.Caption := LanguageToStr(aLang); NewItem.Checked := IEGlobalSettings.MsgLanguage = aLang; NewItem.Tag := ord(aLang); NewItem.OnClick := LanguageClick; mnuLanguage.Add(NewItem) end; end; procedure TMainForm.ImageEnView1ViewChange(Sender: TObject; Change: Integer); begin if ImageEnView1.IsEmpty2 then StatusBar.Panels[0].Text := '' else StatusBar.Panels[0].Text := ' Zoom: ' + IntToStr(Round(ImageEnView1.Zoom)) + '%'; end; procedure TMainForm.LanguageClick(Sender: TObject); var aLang : TMsgLanguage; I: Integer; begin MessageDlg('You can view translated actions on the drop down menus.' + #13#10 + #13#10 + 'Note: Translation of some languages is not yet complete. Email sales@xequte.com to assist.', mtInformation, [mbOK], 0); for I := 0 to mnuLanguage.Count - 1 do mnuLanguage.Items[I].Checked := False; aLang := TMsgLanguage(TMenuItem(Sender).Tag); IEGlobalSettings.MsgLanguage := aLang; TMenuItem(Sender).Checked := True; end; end.