BSOne.SFC/EM.Lib/ImageEn_SRC/Demos/Other/Actions/MAIN.PAS

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.