Delphi,VCL ...在表单上呈现Web组件

时间:2010-02-25 11:39:19

标签: delphi extjs browser

如何使用delphi将网站的一部分呈现为位图?

最近我见过Raudus框架,它是Delphi的ExtJs绑定/包装器。然而,有什么独特之处,它确实使组件看起来与浏览器完全一样。简单来说,它就像delphi IDE中Javascript组件的WYSIWYG设计器一样。我无法尝试,因为我正在使用delphi个人(它需要dbrtl)。 然而,在演示电影上看它需要一些时间来渲染组件(即使在调整它们之后),因此我相信它是通过Web浏览器渲染引擎或类似的东西呈现的......

如果有人知道类似但开源的东西,请告诉我... 提前致谢, 米

3 个答案:

答案 0 :(得分:3)

前段时间我发现了一个神秘的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;

答案 1 :(得分:0)

如果您对Internet Explorer呈现页面的方式很满意,它将在TWebBrowser(内置组件)中正确显示,您可以从那里生成位图。

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

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

答案 2 :(得分:0)

Dave Baldwin's HTML display components现在是免费软件源(甚至是专业版),并且在Delphi中工作到2006年(也就是2007年)。我不知道这些是否会有所帮助,因为你没有指定你正在使用哪个版本的Delphi。