Перейти к содержанию
Fire Monkey от А до Я
  • 0

Как сделать скриншот формы?


Вячеслав

Вопрос

Господа, озадачился вопросом получения скриншота формы. Статью Ярослава прочитал, разобрался, но в ней описан метод получения скриншота произвольного контрола с помощью метода PainTo. У формы же этот метод иной, поэтому возникли затруднения.

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Все, вопрос снят. Всего-навсего нужно было отрисовать форму через PaintTo в Canvas. Единственное отличие от отрисовки контрола-у метода PaintTo формы входной параметр только один-TCanvas.

Ссылка на комментарий
  • 0
  • Администраторы

На всякий случай, продублирую:

function MakeScreenshotOfForm(const AForm: TForm): TBitmap;
begin
  Assert(AForm <> nil);

  Result := TBitmap.Create(AForm.Width, AForm.Height);
  AForm.PaintTo(Result.Canvas);
end;

procedure TForm4.Button1Click(Sender: TObject);
var
  Bitmap: TBitmap;
begin
  Bitmap := MakeScreenshotOfForm(Self);
  try
    Image1.Bitmap.Assign(Bitmap);
  finally
    Bitmap.Free;
  end;
end;

Еще есть статья [XE7] Создание PrintScreen'ов полных и части экранов, в ней рассказывается, как сделать скриншоты в том числе и чужих окон, правда только под Windows

Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...