例如现在有一个窗体FORM1,FORM1上有一些控件!我希望按一下按钮(BUTTON1),使窗体中(100,100,200,200),这个区域保存为图片,应该怎么实现呢?(PS:等于把窗体这个区域进行截图,然后保存)

解决方案 »

  1.   

    方法有很多:procedure TForm1.Button1Click(Sender: TObject);
    var
      Bmp: TBitMap;
      i: integer;
      SourRect: TRect;
    begin
      SourRect := Rect(100,100,200,200);
      BMP := TBitMap.Create;
      BMP.PixelFormat := pf24bit;
      BMP.Width := SourRect.Right;
      BMP.Height := SourRect.Bottom;
      BitBlt(BMP.Canvas.Handle, 0, 0, BMP.Width, BMP.Height, self.Canvas.Handle, 100, 100,SRCCOPY);
      BMP.SaveToFile('MyCutPic.bmp');
      Image1.Picture.Assign(BMP);
      BMP.Free;
    end;
      

  2.   


    procedure TForm1.Button2Click(Sender: TObject);
    var
      Bmp: TBitMap;
      i: integer;
      SourRect: TRect;
    begin
      SourRect := Rect(100,100,200,200);
      BMP := TBitMap.Create;
      BMP.PixelFormat := pf24bit;
      BMP.Width := SourRect.Right;
      BMP.Height := SourRect.Bottom;
      BMP.Canvas.CopyRect(Image1.ClientRect,self.Canvas,SourRect);
      BMP.SaveToFile('E:\MyCutPic.bmp');
      Image1.Picture.Assign(BMP);
      BMP.Free;
    end;