Mega Code Archive

 
Categories / Delphi / Forms
 

How to Capture a Delphi CLX Form

Title: How to Capture a Delphi CLX Form 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;