Как отловить CLX форму?

Previous  Top  Next

    
 

 

 

Code:

{

Capturing a CLX form is easy, once you know.

It took me a little time to find out, so I'm giving the knowledge to help others :

}

 

type

TFormCapturable = class(TForm)

public

   procedure PrintOne;

end;

 

var

FormCapturable: TFormCapturable;

 

implementation

 

uses

Qt;

 

procedure TFormCapturable.PrintOne;

var

aBitmap : TBitmap;

aWinHandle : QWidgetH;

aWinId : Cardinal;

x, y, w, h : integer;

begin

// create a new bitmap to hold the captured screen

aBitMap := TBitmap.Create;

try

   // get a handle on the desktop

   aWinHandle := QApplication_desktop;

   // get the Id from the desktop handle

   aWinId := QWidget_winId( aWinHandle);

   // get the position and size of the windows

   x := Self.Left;

   y := Self.Top;

   w := Self.Width;

   h := Self.Height;

   // capture the window into the bitmap's pixmap

   QPixmap_grabWindow( aBitmap.Handle, aWinId, x, y, w, h);

   // save the bitmap

   aBitMap.SaveToFile( 'c:\temp\test.bmp');

finally

   // don't forget to kill the bitmap after use.

   FreeAndNil( aBitMap);

end;

end;

 

 

©Drkb::04614

Взято с сайта http://www.swissdelphicenter.ch/en/tipsindex.php