程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi圖象截取編程示例(5)

Delphi圖象截取編程示例(5)

編輯:Delphi

  3)抓取窗體或控件圖片
     抓取窗體或控件圖片,即要用到一個新的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;

  4)抓取 ICON 圖片
  抓取 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 (Right>Left)and(Bottom>Top) 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;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved