代码之家  ›  专栏  ›  技术社区  ›  migajek

Delphi,VCL…在窗体上呈现Web组件

  •  3
  • migajek  · 技术社区  · 15 年前

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

    最近我看到了Raudus框架,它是Delphi的extJS绑定/包装器。然而,这一点的独特之处在于,它确实能使组件在浏览器中看起来完全一样。简单来说,它就像DelphiIDE中JavaScript组件的WYSIWYG设计器。因为我使用的是Delphi Personal(它需要dbrtl),所以我无法尝试。 但是,在观看演示影片时,需要一些时间来渲染组件(即使在调整了它们的大小之后),因此我相信它是通过Web浏览器渲染引擎或类似的东西来渲染的…

    如果有人知道类似但开源的东西,请告诉我… 事先谢谢, 米

    3 回复  |  直到 15 年前
        1
  •  3
  •   JosephStyons    15 年前

    不久前我发现了一个神秘的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;
    
        2
  •  0
  •   Bruce McGee    15 年前

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

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

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

        3
  •  0
  •   Ken White    15 年前

    Dave Baldwin's HTML display components 现在是免费软件的来源(甚至是专业版),并在德尔福工作到2006年(也就是2007年)。我不知道这些是否有用,因为您没有指定要使用的Delphi版本。