⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmain.pas

📁 Apprehend Screen Capture Component Version 4.2 A non-visible component to capture images. Freeware w
💻 PAS
📖 第 1 页 / 共 4 页
字号:
{----------------------------------------------------------------------------
| 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 + -