Delphi, VCL ... рендеринг веб-компонентов на форме - PullRequest
3 голосов
/ 25 февраля 2010

как я могу отобразить часть сайта в растровое изображение с помощью Delphi?

недавно я видел фреймворк Raudus, который связывает / упаковывает ExtJs для delphi. Однако, что является уникальным в этом, он делает компоненты выглядеть точно так же, как в браузере. Просто он работает как конструктор WYSIWYG для компонентов Javascript в Delphi IDE. Я не смог попробовать, так как я использую delphi personal (для этого требуется dbrtl). Однако при просмотре демонстрационного фильма требуется некоторое время для рендеринга компонентов (даже после изменения их размера), поэтому я считаю, что он визуализируется через механизм рендеринга в веб-браузере или что-то подобное ...

если кто-нибудь знает что-то подобное, но с открытым исходным кодом, пожалуйста, дайте мне знать ... заранее спасибо, м

Ответы [ 3 ]

3 голосов
/ 25 февраля 2010

Некоторое время назад я обнаружил загадочный вызов ActiveX: OleDraw . Как оказалось, он прекрасно работает, используя встроенный компонент WebBrowser ( IWebBrowser2 ) для рендеринга HTML и захвата вывода в растровое изображение.

Код может выглядеть примерно так:

uses ActiveX, OleCtrls, SHDocVw;
b:=TBitmap.Create;
try
  b.Width:=SizeX;
  b.Height:=SizeY;
  OleDraw(WebBrowser1.OleObject,DVASPECT_CONTENT,b.Canvas.Handle,Rect(0,0,SizeX,SizeY));
  b.SaveToFile(FileName);
finally
  b.Free;
end;
0 голосов
/ 25 февраля 2010

HTML-компоненты отображения Дейва Болдуина теперь бесплатны с исходным кодом (даже с версией Professional) и работают в Delphi вплоть до 2006 года (что означает также и 2007). Я не знаю, помогут ли они, потому что вы не указали, какую версию Delphi вы используете.

0 голосов
/ 25 февраля 2010

Если вы знакомы с тем, как Internet Explorer отображает страницу, она будет правильно отображаться в TWebBrowser (встроенный компонент), и вы можете создавать растровые изображения оттуда.

http://delphi.about.com/od/vclusing/a/wb_scren_shot.htm

http://www.delphi3000.com/articles/article_4132.asp?SK=

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...