WEB开发网
开发学院软件开发Delphi Delphi图象截取编程示例(5) 阅读

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

 2006-02-04 13:52:38 来源:WEB开发网   
核心提示: 3)抓取窗体或控件图片 抓取窗体或控件图片,即要用到一个新的Form2,Delphi图象截取编程示例(5),参见《Delphi图象截取编程示例(7)》 在Main单元implementation的uses中添加Capture2, [Capture Windows or Controls]窗体或控件抓图的Action
 

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;

Tags:

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接