📄 frmmain.pas
字号:
{----------------------------------------------------------------------------
| Library: ASG Screen Capture ( Apprehend 2001 ) TImageEnView Demo
| Adirondack Software & Graphics Capture Main Form Unit
| for Delphi 5 (C) Copyright Adirondack Software & Graphics 1996-2001
|
| Module: ASGCapture
|
| Description: TASGScreenCapture class and non-visible component.
|
| Known Problems: None
|
|---------------------------------------------------------------------------}
unit FrmMain;
interface
uses
Windows, SysUtils, Messages, Graphics, Controls, Forms, Classes, StdCtrls,
ExtCtrls, Printers, HYIEdefs, IEOpenSaveDlg, ImageENView, ImageEnIO, ImageEnProc,
HYIEutils, ASGCapture, Dialogs, ImgList, StdActns, ActnList, Menus, ComCtrls,
dxBar, Placemnt, dxBarExtItems, RPBase, RPCanvas, RPFPrint, RPreview,
RPDefine, RPSystem, LMDWndProcComponent, LMDSysMenu, LMDCustomComponent,
LMDGlobalHotKey, LMDApplicationCtrl;
type
TFormMain = class(TForm)
Op: TActionList;
FileNew1: TAction;
FileOpen1: TAction;
FileClose1: TWindowClose;
FileCloseAll1: TAction;
FileSave1: TAction;
FileSaveAs1: TAction;
FileExit1: TAction;
EditCopy1: TEditCopy;
EditPaste1: TEditPaste;
HelpAbout1: TAction;
CaptureDesktop1: TAction;
CaptureArea1: TAction;
CaptureActive1: TAction;
CaptureObject1: TAction;
OptionsMinimize1: TAction;
OptionsAutomatic1: TAction;
HelpContents1: TAction;
OptionsDelay1: TAction;
EditCrop1: TAction;
EditUndo1: TAction;
ImageList1: TImageList;
ASGScreenCapture1: TASGScreenCapture;
StatusBar1: TStatusBar;
PageControl1: TPageControl;
CaptureImageList: TImageList;
ProgressBar1: TProgressBar;
ImageEnProc1: TImageEnProc;
ImageEnIO1: TImageEnIO;
EditCut1: TAction;
OpenImageEnDialog1: TOpenImageEnDialog;
SaveImageEnDialog1: TSaveImageEnDialog;
SelectZoom1: TAction;
SelectRect1: TAction;
SelectCircle1: TAction;
SelectPolygon1: TAction;
SelectNone1: TAction;
ImageGrayScale1: TAction;
Image16Color1: TAction;
Image256Color1: TAction;
ImageTrueColor1: TAction;
ImageBW1: TAction;
ImageEffects1: TAction;
ImageBrightness1: TAction;
ImageCalcColors1: TAction;
ImageRotate1: TAction;
ImageResize1: TAction;
ImageResample1: TAction;
ViewFullScreen1: TAction;
ImageVertFlip1: TAction;
ImageHorzFlip1: TAction;
ImageRotateRight1: TAction;
ImageRotateLeft1: TAction;
PrinterSetupDialog1: TPrinterSetupDialog;
PrintSetup1: TAction;
Print1: TAction;
EditPasteSelection1: TAction;
EditPasteNew1: TAction;
FileProperties1: TAction;
ImageProperties1: TAction;
dxBarManager1: TdxBarManager;
FileNewItem: TdxBarButton;
FileOpenItem: TdxBarButton;
FileCloseItem: TdxBarButton;
FileCloseAll2: TdxBarButton;
FileSaveItem: TdxBarButton;
FileSaveAsItem: TdxBarButton;
ImageProperties11: TdxBarButton;
PrintSetup2: TdxBarButton;
Print2: TdxBarButton;
FileExitItem: TdxBarButton;
File1: TdxBarSubItem;
Cut1: TdxBarButton;
CopyItem: TdxBarButton;
Pastetonewimage1: TdxBarButton;
PasteItem: TdxBarButton;
PasteSelection11: TdxBarButton;
Paste1: TdxBarSubItem;
Crop1: TdxBarButton;
Undo1: TdxBarButton;
Edit1: TdxBarSubItem;
Desktop1: TdxBarButton;
Area1: TdxBarButton;
ActiveWindow1: TdxBarButton;
Object1: TdxBarButton;
Capture1: TdxBarSubItem;
ImageVertFlip11: TdxBarButton;
ImageHorzFlip11: TdxBarButton;
Resize1: TdxBarButton;
ResizeImage1: TdxBarButton;
Resize2: TdxBarSubItem;
Rotate1: TdxBarButton;
Left2: TdxBarButton;
Right1: TdxBarButton;
ImageRot: TdxBarSubItem;
ImageEffects: TdxBarButton;
Image1: TdxBarSubItem;
Brightness1: TdxBarButton;
Contrast1: TdxBarButton;
Adjust1: TdxBarSubItem;
BlackWhite1: TdxBarButton;
Greyscale1: TdxBarButton;
N16Colors1: TdxBarButton;
N256Color1: TdxBarButton;
TrueColor1: TdxBarButton;
Color1: TdxBarSubItem;
ImageCalcColors11: TdxBarButton;
Colors1: TdxBarSubItem;
Rectangle1: TdxBarButton;
SelectCircle11: TdxBarButton;
SelectPolygon11: TdxBarButton;
SelectMove11: TdxBarButton;
Zoom1: TdxBarButton;
SelectNone11: TdxBarButton;
Select1: TdxBarSubItem;
ViewFullScreen2: TdxBarButton;
View1: TdxBarSubItem;
Minimize1: TdxBarButton;
Automatic1: TdxBarButton;
Delay1: TdxBarButton;
Miminized1: TdxBarSubItem;
HelpAboutItem: TdxBarButton;
HelpContents2: TdxBarButton;
Help1: TdxBarSubItem;
FlipPopupMenu: TdxBarPopupMenu;
MainPopupMenu: TdxBarPopupMenu;
Color2: TdxBarSubItem;
Brightness2: TdxBarButton;
RotatePopupMenu: TdxBarPopupMenu;
SelectPopupMenu: TdxBarPopupMenu;
SelectNone12: TdxBarButton;
ZoomCombo: TdxBarCombo;
PrintPreview1: TAction;
dxBarButtonPreview: TdxBarButton;
dxBarButtonFlip: TdxBarButton;
Flip1: TAction;
FormStorage1: TFormStorage;
dxBarMRUListItem1: TdxBarMRUListItem;
ReportSystem1: TReportSystem;
FilePreview1: TFilePreview;
OptionsToolbar1: TAction;
dxBarSubItem1: TdxBarSubItem;
dxBarButton1: TdxBarButton;
dxBarButton2: TdxBarButton;
dxBarButton3: TdxBarButton;
dxBarButton4: TdxBarButton;
LMDGlobalHotKey1: TLMDGlobalHotKey;
LMDSysMenu1: TLMDSysMenu;
SystemMenu: TPopupMenu;
Desktop2: TMenuItem;
Area2: TMenuItem;
WindowObject1: TMenuItem;
ActiveWindow2: TMenuItem;
N1: TMenuItem;
LMDGlobalHotKey2: TLMDGlobalHotKey;
LMDGlobalHotKey3: TLMDGlobalHotKey;
LMDGlobalHotKey4: TLMDGlobalHotKey;
LMDApplicationCtrl1: TLMDApplicationCtrl;
dxBarButton5: TdxBarButton;
dxBarButton6: TdxBarButton;
SelectWand1: TAction;
dxBarButton7: TdxBarButton;
dxBarSpinEdit1: TdxBarSpinEdit;
WandFilter1: TAction;
procedure FileNew1Execute(Sender: TObject);
procedure FileOpen1Execute(Sender: TObject);
procedure FileClose1Execute(Sender: TObject);
procedure FileCloseAll1Execute(Sender: TObject);
procedure FileSave1Execute(Sender: TObject);
procedure FileSaveAs1Execute(Sender: TObject);
procedure EditCopy1Execute(Sender: TObject);
procedure EditPaste1Execute(Sender: TObject);
procedure EditCrop1Execute(Sender: TObject);
procedure EditUndo1Execute(Sender: TObject);
procedure CaptureDesktop1Execute(Sender: TObject);
procedure CaptureArea1Execute(Sender: TObject);
procedure CaptureActive1Execute(Sender: TObject);
procedure CaptureObject1Execute(Sender: TObject);
procedure FileExit1Execute(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure HelpAbout1Execute(Sender: TObject);
procedure HelpContents1Execute(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure ImageEnViewProgress(Sender: TObject; per: Integer);
procedure EditCut1Execute(Sender: TObject);
procedure OptionsAutomatic1Execute(Sender: TObject);
procedure OptionsDelay1Execute(Sender: TObject);
procedure OptionsMinimize1Execute(Sender: TObject);
procedure PageControl1Change(Sender: TObject);
procedure SelectZoom1Execute(Sender: TObject);
procedure SelectRect1Execute(Sender: TObject);
procedure SelectMove1Execute(Sender: TObject);
procedure SelectCircle1Execute(Sender: TObject);
procedure SelectPolygon1Execute(Sender: TObject);
procedure SelectNone1Execute(Sender: TObject);
procedure ImageGrayScale1Execute(Sender: TObject);
procedure ImageTrueColor1Execute(Sender: TObject);
procedure Image256Color1Execute(Sender: TObject);
procedure Image16Color1Execute(Sender: TObject);
procedure ImageBW1Execute(Sender: TObject);
procedure ColorAdjust1Click(Sender: TObject);
procedure ImageEffects1Execute(Sender: TObject);
procedure ImageBrightness1Execute(Sender: TObject);
procedure ImageCalcColors1Execute(Sender: TObject);
procedure ImageRotate1Execute(Sender: TObject);
procedure ImageResize1Execute(Sender: TObject);
procedure ImageResample1Execute(Sender: TObject);
procedure ViewFullScreen1Execute(Sender: TObject);
procedure ImageVertFlip1Execute(Sender: TObject);
procedure ImageHorzFlip1Execute(Sender: TObject);
procedure ImageRotateRight1Execute(Sender: TObject);
procedure ImageRotateLeft1Execute(Sender: TObject);
procedure PrintSetup1Execute(Sender: TObject);
procedure Print1Execute(Sender: TObject);
procedure EditPasteSelection1Execute(Sender: TObject);
procedure EditPasteNew1Execute(Sender: TObject);
procedure FileProperties1Execute(Sender: TObject);
procedure ZoomComboChange(Sender: TObject);
procedure PrintPreview1Execute(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure dxBarMRUListItem1Click(Sender: TObject);
procedure ReportSystem1Print(Sender: TObject);
procedure dxBarButton1Click(Sender: TObject);
procedure dxBarButton2Click(Sender: TObject);
procedure dxBarButton3Click(Sender: TObject);
procedure dxBarButton4Click(Sender: TObject);
procedure LMDGlobalHotKey1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Desktop2Click(Sender: TObject);
procedure Area2Click(Sender: TObject);
procedure ActiveWindow2Click(Sender: TObject);
procedure WindowObject1Click(Sender: TObject);
procedure ImageBrightnessExecute(Sender: TObject);
procedure SelectWand1Execute(Sender: TObject);
procedure WandFilter1Execute(Sender: TObject);
procedure dxBarSpinEdit1CurChange(Sender: TObject);
procedure dxBarSpinEdit1Change(Sender: TObject);
private
{ Private declarations }
TabSheet: TTabSheet;
Image: TImageENView;
fDefaultFolder: string;
fDefaultExtension: string;
fSaveAs: boolean;
fInSelection: Boolean;
fMsgLanguage: TMsgLanguage;
TmpFolder: string;
procedure ShowHint(Sender: TObject);
procedure ShowIOParams(Params: TIOParamsVals); // get image info from file
procedure ShowPropertyIOParams(params: TIOParamsVals);
procedure ImageEnViewDblClick(Sender: TObject);
procedure ImageEnViewChange(Sender: TObject; Change: Integer);
procedure ImageEnViewKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ImageEnViewMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ImageEnViewMouseInSel(Sender: TObject);
procedure ImageEnViewMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure ImageEnViewMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ImageEnViewImageChange(Sender: TObject);
public
{ Public declarations }
fPathFilename: string;
fFilename: string;
procedure AddControls(Sender: TObject);
procedure UpdateControls;
end;
var
FormMain: TFormMain;
implementation
uses
ImageEn, Fullscrn, Clipbrd, ShellApi, GifLZW, TIFLZW, ScreenDelay,
frmConvBW, frmRotate, frmresres, frmStat, frmPropDlg;
{$R *.DFM}
procedure PrintBitmapScaled(BaseReport: TBaseReport;
X1: double;
Y1: double;
DesiredWidth: double;
DesiredHeight: double;
Bitmap: TBitmap);
var
Calc: double;
begin { PrintBitmapScaled }
With BaseReport do begin
If DesiredWidth <= 0.0 then begin
Calc := DesiredHeight * (Bitmap.Width / XDPI) / (Bitmap.Height / YDPI);
PrintBitmapRect(X1,Y1,X1 + Calc,Y1 + DesiredHeight,Bitmap);
end else if DesiredHeight <= 0.0 then begin
Calc := DesiredWidth * (Bitmap.Height / YDPI) / (Bitmap.Width / XDPI);
PrintBitmapRect(X1,Y1,X1 + DesiredWidth,Y1 + Calc,Bitmap);
end else begin
PrintBitmapRect(X1,Y1,X1 + DesiredWidth,Y1 + DesiredHeight,Bitmap);
end; { else }
end; { with }
end; { PrintBitmapScaled }
function PixelFormatToColors(PixelFormat: TPixelFormat): string;
begin
case PixelFormat of
pf1bit: Result := '2 color';
pf4bit: Result := '16 color';
pf8bit: Result := '256 color';
pf15bit: Result := '15 Bit (High color)';
pf16bit: Result := '16 Bit (High color)';
pf24bit: Result := '24 Bit (True color)';
pf32bit: Result := '32 Bit (True color)';
else Result := 'Unknown';
end;
end;
procedure TFormMain.FormCreate(Sender: TObject);
begin
// Set ImageEn file compression options
DefGIF_LZWDECOMPFUNC := GIFLZWDecompress;
DefGIF_LZWCOMPFUNC := GIFLZWCompress;
DefTIFF_LZWDECOMPFUNC := TIFFLZWDecompress;
DefTIFF_LZWCOMPFUNC := TIFFLZWCompress;
fInSelection := False;
OpenImageEnDialog1.Filename := '';
OpenImageEnDialog1.FilterIndex := 1;
Application.OnHint := ShowHint;
TmpFolder := '';
Application.HelpFile := ExtractFilePath(Application.EXEName) + 'Help\APPREHEND SCREEN CAPTURE.HLP';
FormStorage1.IniFileName := ChangeFileExt(Application.EXEName, '.INI');
dxBarManager1.IniFileName := ChangeFileExt(Application.EXEName, '.INI');
dxBarManager1.LoadFromIniFile(ChangeFileExt(Application.EXEName, '.INI'));
UpdateControls;
end;
procedure TFormMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -