308 lines
9.5 KiB
Plaintext
308 lines
9.5 KiB
Plaintext
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.
|