Delphi图象截取编程示例(5)

2016-02-19 14:20 3 1 收藏

图老师小编精心整理的Delphi图象截取编程示例(5)希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~

【 tulaoshi.com - 编程语言 】

 

  
     抓取窗体或控件图片,即要用到一个新的Form2,参见《Delphi图象截取编程示例(7)》
     在Main单元implementation的uses中添加Capture2。
    
  [Capture Windows or Controls]窗体或控件抓图的Action 事件

  procedure TMainForm.cptWindowsExecute(Sender: TObject);
  var p:TPoint; Handles:HWnd;
  begin
    Inc(CaptureNum,1);
    Application.Minimize ;
    Delay(500);
    FileName:='Capture'+IntTOStr(CaptureNum);
    FileName:=DefaultDirectory+FileName;
    with TForm2.Create(Application) do
    try
      if ShowModal=mrOK then
      begin
        CreateMDIChild(FileName,true);
        StatusBar.SimpleText := FileName;
        Delay(500);
        ABitmap:=TBitmap.Create ;
        GetCursorPos(P);
        Handles:=WindowFromPoint(P);
        ABitmap:=CaptureWindowImage(Handles);
        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;
        Child.Image1.Hint := 'Height:'+intToStr(child.Image1.Picture.Height)+'pixels'
                       + ' Width:'+intToStr(child.Image1.Picture.Width)+'pixels';
        ABitmap.Free ;
      end;
    finally
      Free;
      Application.Restore ;
    end;
  end;

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  
  抓取 ICON 图片,即要用到一个新的Form3,参见《Delphi图象截取编程示例(8)》
  在Main单元implementation的uses中添加Capture3。
  在Main单元添加私有过程CaptureICON :

  procedure TMainForm.CaptureICON; // [二十]
  begin
    with TForm3.Create(Application) do
    try
      if ShowModal = mrOK then
        with fRect do begin
          if (RightLeft)and(BottomTop) then begin
            Delay(300);
            ABitmap:=TBitmap.Create ;
            ABitmap.Assign(CaptureScreenRect(fRect));
            Child.Image1.Picture.Bitmap:=ABitmap;
            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 ;
            Form3.Free ;
            exit;
          end;
        end;
    finally
      Free;
    end;
  end;

  [Capture ICON ] ICON 抓图的Action 事件
  procedure TMainForm.cptIconExecute(Sender: TObject);
  begin
    Application.Minimize ;
    Delay(400);
    Inc(CaptureNum,1);
    FileName:='Capture'+intToStr(CaptureNum);
    FileName:=DefaultDirectory+FileName;
    CreateMDIChild(FileName,true);
    StatusBar.SimpleText := FileName;
    CaptureICON;
    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;
    Child.Image1.Hint := 'Height:'+intToStr(child.Image1.Picture.Height)+'pixels'
                       + ' Width:'+intToStr(child.Image1.Picture.Width)+'pixels';
    Application.Restore ;
  end;

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

来源:https://www.tulaoshi.com/n/20160219/1606743.html

延伸阅读
标签: Delphi
  拖放 (DragDrop)是 Windows 提供的一种快捷的操作方式。作为基于 Windows 的开发工具, Delphi同样支持拖放操作,而且开发应用系统的拖放功能十分方便,真正体现了 Delphi 的强大功能和方便性。 Delphi提供的所有控件 (Control ,即能获得输入焦点的部件 ) 都支持拖放操作,并有相应的拖放属性、拖放事件和拖放方法。下面我...
◇[DELPHI]网络邻居复制文件 uses shellapi; copyfile(pchar('newfile.txt'),pchar('//computername/direction/targer.txt'),false); ◇[DELPHI]产生鼠标拖动效果 通过MouseMove事件、DragOver事件、EndDrag事件实现,例如在PANEL上的LABEL: var xpanel,ypanel,xlabel,ylabel:integer; PAN...
标签: Delphi
  Delphi作为一门新起的Windows编程语言,由于其集众多的优秀特性于一身,因而越来越得到广大编程人员和发烧友的青睐。以下十则技巧涉及的面比较广泛,希望能够对Delphi的爱好者有所裨益。 1.类似于vb.中的doevents功能。 大家或许发现,在Delphi中没有类似于vb.中的doevents函数,这样有的时候,我们将无法使Windows响应...
Delphi3开始有了TWebBrowser构件,不过那时是以ActiveX控件的形式出现的,而且需要自己引入,在其后的4.0和5.0中,它就在封装好shdocvw.dll之后作为Internet构件组之一出现在构件面板上了。常常听到有人骂Delphi的帮助做得极差,这次的TWebBrowser又是Microsoft的东东,自然不会好到哪里去,虽说MSDN上什么都有,可是内容太过庞杂,如果没有入口...
标签: Delphi
在Delphi中涉及到系统编程的方面毫无例外都要调用API函数,在ShellAPI.pas单元中有要用到的API函数的原型。 实战演练: 一.新建一个应用程序:File->New Applicaton 在Interface部分定义一个消息常量:const WM_NID=WM_USER+1000; 系统规定从WM_USER开始为用户自定义消息。 二.定义一个全局变量: NotifyIcon:TNotifyIc...

经验教程

675

收藏

52
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部