📄 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, IEOpenSaveDlg, ImageENView, ImageEnIO, ImageEnProc, HYIEutils,
HYIEdefs, ASGCapture, Dialogs, ImgList, StdActns, ActnList, Menus, ComCtrls,
ToolWin;
type
TFormMain = class(TForm)
MainMenu1: TMainMenu;
File1: TMenuItem;
FileNewItem: TMenuItem;
FileOpenItem: TMenuItem;
FileCloseItem: TMenuItem;
FileCloseAll2: TMenuItem;
FileSaveItem: TMenuItem;
FileSaveAsItem: TMenuItem;
N1: TMenuItem;
FileExitItem: TMenuItem;
Edit1: TMenuItem;
CopyItem: TMenuItem;
PasteItem: TMenuItem;
Crop1: TMenuItem;
Undo1: TMenuItem;
Capture1: TMenuItem;
Desktop1: TMenuItem;
Area1: TMenuItem;
ActiveWindow1: TMenuItem;
Object1: TMenuItem;
Miminized1: TMenuItem;
Minimize1: TMenuItem;
Automatic1: TMenuItem;
Delay1: TMenuItem;
Help1: TMenuItem;
HelpAboutItem: TMenuItem;
HelpContents2: TMenuItem;
ActionList1: 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;
Cut1: TMenuItem;
OpenImageEnDialog1: TOpenImageEnDialog;
SaveImageEnDialog1: TSaveImageEnDialog;
Select1: TMenuItem;
Zoom1: TMenuItem;
Rectangle1: TMenuItem;
SelectZoom1: TAction;
SelectRect1: TAction;
SelectMove1: TAction;
SelectCircle1: TAction;
SelectPolygon1: TAction;
SelectCircle11: TMenuItem;
SelectPolygon11: TMenuItem;
SelectMove11: TMenuItem;
SelectNone1: TAction;
SelectNone11: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
SelectPopupMenu: TPopupMenu;
SelectZoom11: TMenuItem;
SelectRect11: TMenuItem;
SelectCircle12: TMenuItem;
SelectMove12: TMenuItem;
SelectPolygon12: TMenuItem;
SelectNone12: TMenuItem;
Image1: TMenuItem;
BlackWhite1: TMenuItem;
N16Colors1: TMenuItem;
N256Color1: TMenuItem;
TrueColor1: TMenuItem;
Greyscale1: TMenuItem;
ImageGrayScale1: TAction;
Image16Color1: TAction;
Image256Color1: TAction;
ImageTrueColor1: TAction;
ImageBW1: TAction;
ImageEffects: TMenuItem;
ImageEffects1: TAction;
N5: TMenuItem;
ImageBrightness1: TAction;
Brightness1: TMenuItem;
Colors1: TMenuItem;
Adjust1: TMenuItem;
Contrast1: TMenuItem;
ImageCalcColors1: TAction;
ImageCalcColors11: TMenuItem;
ImageRotate1: TAction;
ImageRot: TMenuItem;
ImageResize1: TAction;
Resize1: TMenuItem;
ImageResample1: TAction;
ResizeImage1: TMenuItem;
Color1: TMenuItem;
ViewFullScreen1: TAction;
View1: TMenuItem;
ViewFullScreen2: TMenuItem;
ImageVertFlip1: TAction;
ImageHorzFlip1: TAction;
Flip1: TMenuItem;
ImageVertFlip11: TMenuItem;
ImageHorzFlip11: TMenuItem;
FlipPopupMenu: TPopupMenu;
RotatePopupMenu: TPopupMenu;
Vertical1: TMenuItem;
Horzontal1: TMenuItem;
ImageRotateRight1: TAction;
ImageRotateLeft1: TAction;
Left1: TMenuItem;
ImageRotateRight11: TMenuItem;
Rotate1: TMenuItem;
Left2: TMenuItem;
Right1: TMenuItem;
Resize2: TMenuItem;
PrinterSetupDialog1: TPrinterSetupDialog;
PrintSetup1: TAction;
Print1: TAction;
N6: TMenuItem;
PrintSetup2: TMenuItem;
Print2: TMenuItem;
EditPasteSelection1: TAction;
Paste1: TMenuItem;
PasteSelection11: TMenuItem;
N7: TMenuItem;
Pastetonewimage1: TMenuItem;
EditPasteNew1: TAction;
FileProperties1: TAction;
ImageProperties1: TAction;
ImageProperties11: TMenuItem;
N8: TMenuItem;
PopupMenu1: TPopupMenu;
Cut2: TMenuItem;
Copy1: TMenuItem;
Pasteclipboardtoactiveimage1: TMenuItem;
N9: TMenuItem;
Pasteclipboardintonewimage1: TMenuItem;
Pastetoselection1: TMenuItem;
Undo2: TMenuItem;
Open1: TMenuItem;
Save1: TMenuItem;
SaveAs1: TMenuItem;
Properties1: TMenuItem;
Effects1: TMenuItem;
Rotate2: TMenuItem;
Close1: TMenuItem;
Exit1: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
PageScroller1: TPageScroller;
ToolBar1: TToolBar;
ToolButton9: TToolButton;
ToolButton1: TToolButton;
ToolButton4: TToolButton;
ToolButton12: TToolButton;
ToolButton11: TToolButton;
ToolButton2: TToolButton;
ToolButton5: TToolButton;
ToolButton3: TToolButton;
ToolButton6: TToolButton;
ToolButton28: TToolButton;
ToolButton13: TToolButton;
ToolButton27: TToolButton;
ToolButton26: TToolButton;
ToolButton21: TToolButton;
ToolButton8: TToolButton;
ToolButton22: TToolButton;
ToggleSelect1: TToolButton;
ToolButton7: TToolButton;
ToolButton14: TToolButton;
ToolButton15: TToolButton;
ToolButton16: TToolButton;
ToolButton18: TToolButton;
ToolButton17: TToolButton;
ToolButton19: TToolButton;
ToolBar2: TToolBar;
ToolButton20: TToolButton;
ToolButton29: TToolButton;
ToolButton30: TToolButton;
ToolButton31: TToolButton;
ToolButton23: TToolButton;
ZoomCombo: TComboBox;
Brightness2: TMenuItem;
Color2: TMenuItem;
BlackWhite2: TMenuItem;
N16Color1: TMenuItem;
N256Color2: TMenuItem;
TrueColor2: TMenuItem;
GrayScale1: TMenuItem;
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);
private
{ Private declarations }
TabSheet: TTabSheet;
Image: TImageENView;
fDefaultFolder: string;
fDefaultExtension: string;
fPathFilename: string;
fFilename: 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 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 }
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}
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) + 'APPREHEND SCREEN CAPTURE.HLP';
UpdateControls;
end;
procedure TFormMain.AddControls(Sender: TObject);
begin
// Create a new tabsheet
with PageControl1 do
TabSheet := TTabSheet.Create(Self);
// Set the tabsheet.pagecontrol to PageControl1
TabSheet.PageControl := PageControl1;
// Set the activepage to tabsheet
PageControl1.ActivePage := TabSheet;
with Tabsheet do begin
// Create an image component
Image := TImageENView.Create(Self);
Image.Parent := Tabsheet;
Image.Align := alClient;
Image.Visible := True;
Image.ShowHint := True;
Image.ParentShowHint := True;
Image.Scrollbars := ssBoth;
Image.MouseInteract := [miSelect];
Image.ZoomFilter := rfNone;
Image.OnMouseDown := ImageEnViewMouseDown;
Image.OnMouseMove := ImageEnViewMouseMove;
Image.OnMouseUp := ImageEnViewMouseUp;
Image.OnMouseInSel := ImageEnViewMouseInSel;
Image.OnDblClick := ImageEnViewDblClick;
Image.OnImageChange := ImageEnViewImageChange;
Image.OnViewChange := ImageEnViewChange;
Image.Cursor := 1785;
Image.Tag := 0;
Image.Scrollbars := ssBoth;
Image.ZoomFilter := rfNone;
Image.SelColor1 := clRed;
Image.SelColor2 := clWhite;
Image.BackgroundStyle := iebsChessboard;
Image.BackGround := clWhite;
Image.Visible := False;
ImageEnIO1.AttachedImageEn := Image;
ImageEnIO1.MsgLanguage := msEnglish;
ImageEnIO1.OnProgress := ImageEnViewProgress;
// The folowing two lines are the key to referencing the components later
// Set tag to monitor image change - 0 = false, 1 = true
TabSheet.Tag := Integer(Image);
// Set the caption of the tabsheet
Caption := Format('Image%d', [PageControl1.ActivePage.PageIndex]);
UpdateControls;
end;
end;
procedure TFormMain.UpdateControls;
begin
FileClose1.Enabled := PageControl1.PageCount <> 0;
FileCloseAll1.Enabled := PageControl1.PageCount <> 0;
FileSave1.Enabled := PageControl1.PageCount <> 0;
FileSaveAs1.Enabled := PageControl1.PageCount <> 0;
FileProperties1.Enabled := PageControl1.PageCount <> 0;
OptionsMinimize1.Enabled := PageControl1.PageCount <> 0;
OptionsAutomatic1.Enabled := PageControl1.PageCount <> 0;
EditCopy1.Enabled := PageControl1.PageCount <> 0;
EditPasteSelection1.Enabled := (Clipboard.HasFormat(CF_PICTURE)) and (PageControl1.PageCount <> 0);
EditPaste1.Enabled := (Clipboard.HasFormat(CF_PICTURE)) and (PageControl1.PageCount <> 0);
EditPasteNew1.Enabled := (Clipboard.HasFormat(CF_PICTURE));
EditCrop1.Enabled := PageControl1.PageCount <> 0;
EditCut1.Enabled := PageControl1.PageCount <> 0;
EditUndo1.Enabled := PageControl1.PageCount <> 0;
Flip1.Enabled := PageControl1.PageCount <> 0;
ImageRot.Enabled := PageControl1.PageCount <> 0;
Resize2.Enabled := PageControl1.PageCount <> 0;
ImageEffects1.Enabled := PageControl1.PageCount <> 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -