Привожу кусок кода, в котором я захватываю в скриншот то, что отображает бразуер. Под Виндой все прекрасно работает, а вот в Маке скриншоты создаются пустыми. Что может быть не правильно?
TBitmap* TForm1::getScreenshotWebBrowser() {
TBitmap *BitmapBuffer;
TBitmap *bmp_Scrhot = new TBitmap;
// Фиксируем размер снимаемой области
TRectF SourceRect(0, 0, WebBrowser1->Width, WebBrowser1->Height);
TRect Rect_bmp(0, 0, WebBrowser1->Width, WebBrowser1->Height);
// Создаем временный буфер для получения скриншота
BitmapBuffer = new TBitmap(SourceRect.Width(), SourceRect.Height());
try {
// Переводим канву в режим отрисовки - начинаем процесс отрисовки сцены
if (BitmapBuffer->Canvas->BeginScene())
try {
// Говорим контролу отрисовать себя в канве нашего буфера в указанной области
WebBrowser1->PaintTo(BitmapBuffer->Canvas, SourceRect);
}
__finally {
// Завершаем процесс отрисовки, заканчивая формируемую сцену
BitmapBuffer->Canvas->EndScene();
}
BitmapBuffer->SaveToFile(GetHomePath() +"/screenshot1.png");
bmp_Scrhot->Width = Rect_bmp.Width();
bmp_Scrhot->Height = Rect_bmp.Height();
bmp_Scrhot->CopyFromBitmap(BitmapBuffer, Rect_bmp, 0, 0);
bmp_Scrhot->SaveToFile(GetHomePath() +"/screenshot2.png");
}
__finally {
delete BitmapBuffer;
}
return bmp_Scrhot;
Вопрос
giveaway
Привожу кусок кода, в котором я захватываю в скриншот то, что отображает бразуер. Под Виндой все прекрасно работает, а вот в Маке скриншоты создаются пустыми. Что может быть не правильно?
TBitmap* TForm1::getScreenshotWebBrowser() { TBitmap *BitmapBuffer; TBitmap *bmp_Scrhot = new TBitmap; // Фиксируем размер снимаемой области TRectF SourceRect(0, 0, WebBrowser1->Width, WebBrowser1->Height); TRect Rect_bmp(0, 0, WebBrowser1->Width, WebBrowser1->Height); // Создаем временный буфер для получения скриншота BitmapBuffer = new TBitmap(SourceRect.Width(), SourceRect.Height()); try { // Переводим канву в режим отрисовки - начинаем процесс отрисовки сцены if (BitmapBuffer->Canvas->BeginScene()) try { // Говорим контролу отрисовать себя в канве нашего буфера в указанной области WebBrowser1->PaintTo(BitmapBuffer->Canvas, SourceRect); } __finally { // Завершаем процесс отрисовки, заканчивая формируемую сцену BitmapBuffer->Canvas->EndScene(); } BitmapBuffer->SaveToFile(GetHomePath() +"/screenshot1.png"); bmp_Scrhot->Width = Rect_bmp.Width(); bmp_Scrhot->Height = Rect_bmp.Height(); bmp_Scrhot->CopyFromBitmap(BitmapBuffer, Rect_bmp, 0, 0); bmp_Scrhot->SaveToFile(GetHomePath() +"/screenshot2.png"); } __finally { delete BitmapBuffer; } return bmp_Scrhot;
Ссылка на комментарий
4 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.