下面图老师小编要跟大家分享Delphi图象截取编程示例(4),简单的过程中其实暗藏玄机,还是要细心学习,喜欢还请记得收藏哦!
【 tulaoshi.com - 编程语言 】
  (六)TMainForm的 (抓图)Action 事件
  
  [Capture Desktop]  Action 事件
  procedure TMainForm.cptDesktopExecute(Sender: TObject);
  begin
    inc(CaptureNum,1);
    Application.Minimize ;  //窗体最小化
    Delay(500);             //最小化后延时,为了全屏抓图不把自身抓进图中
    FileName:='Capture'+IntToStr(CaptureNum)+'.bmp';
    FileName:=DefaultDirectory+FileName;
    CreateMDIChild(FileName,true);
    StatusBar.SimpleText := FileName;
    with ActiveMDIChild as TMDIChild do begin
      Image1.Picture.Bitmap := CaptureScreen;         //抓图
      HorzScrollBar.Range := Image1.Picture.Width;
      VertScrollBar.Range := Image1.Picture.Height;
    end;
    Child.Image1.Hint := 'Height:'+intToStr(child.Image1.Picture.Height)+'pixels'
                       + ' Width:'+intToStr(child.Image1.Picture.Width)+'pixels';
    application.Restore ;
  end;
     抓取区域图片,即要用到一个新的Form1,参见《Delphi图象截取编程示例(6)》  .
     在Main单元implementation的uses中添加Capture1。
     在Main单元添加私有过程CaptureArea :
  procedure TMainForm.CaptureArea;
  begin
    with TForm1.Create(Application) do
    try
      if ShowModal=mrOK then
      with fRect do begin
        if (RightLeft)and(BottomTop) then begin
          Delay(400);
          ABitmap:=TBitmap.Create;
          ABitmap.Assign(CaptureScreenRect(fRect));
          Child.Image1.Picture.Bitmap:=ABitmap;
          Child.ClientWidth := Child.Image1.Picture.Width ;
          Child.ClientHeight:= Child.Image1.Picture.Height;
          Child.HorzScrollBar.Range:=Child.Image1.Picture.Width ;
          Child.VertScrollBar.Range:=Child.Image1.Picture.Height;
          ABitmap.Free ;
        end else begin
          MessageDlg('选择图片区域错误,请重新选择!',mtInformation,[mbOK],0);
          Child.Close ;
          Form1.Free ;
          exit;
        end;
      end;
    finally
      Free;
    end;
  end;
  [Capture Area]区域抓图的Action 事件
  procedure TMainForm.cptAreaExecute(Sender: TObject);
  begin
    Inc(CaptureNum,1);
    Application.Minimize ;
    Delay(500);
    FileName:='Capture'+IntToStr(CaptureNum)+'.bmp';
    FileName:=DefaultDirectory+FileName;
    { Create MDI Child Window }
    CreateMDIChild(FileName,true);
    StatusBar.SimpleText := FileName;
    { Capture Area of screen }
    CaptureArea;
    Child.Image1.Hint := 'Height:'+intToStr(child.Image1.Picture.Height)+'pixels'
                       + ' Width:'+intToStr(child.Image1.Picture.Width)+'pixels';
    application.Restore ;
  end;
来源:http://www.tulaoshi.com/n/20160219/1606753.html
看过《Delphi图象截取编程示例(4)》的人还看了以下文章 更多>>