Home > Mobile >  How to save a screenshot of a Form containing TRichEdit to a file?
How to save a screenshot of a Form containing TRichEdit to a file?

Time:08-02

I use this code to save a screenshot of a Form to a bitmap file:

var
  Bmp : Graphics.TBitmap;
begin
  Bmp := GetFormImage;
  try
    Bmp.SaveToFile( _DestFilePath );
  finally
    Bmp.Free;
  end;
end;

However, it doesn't seem to work well when a TRichEdit control is placed on the Form. Instead of a TRichEdit control and all its content, a white rectangle is saved into the final image.

How can I get a complete screenshot of a Form that contains a non-blank TRichEdit control?

I use Delphi 2009.

CodePudding user response:

If GetFormImage() fails, you should try to BitBlt() the Form's contents yourself, eg:

var bm := TBitmap.Create(ClientWidth, ClientHeight);
try
  BitBlt(bm.Canvas.Handle, 0, 0, ClientWidth, ClientHeight, Self.Canvas.Handle, 0, 0, SRCCOPY);
  // use bm as needed...
finally
  bm.Free;
end;

This successfully copies a Form with a TRichEdit for me.

  • Related