如何重写类方法?

时间:2013-08-06 14:32:05

标签: delphi delphi-xe3 tchromium chromium-embedded

这是ceflib.pas代码 CEFLIB.PAS


所以在TCefRenderProcessHandlerOwn类中,声明了OnBeforeNavigation函数 正如我们所看到的,它每次都返回False并且它很糟糕,因为如果链接被MouseWheelClick打开,它将不会在新标签中打开此链接,我想修复它。
问题是:如何重写这个功能?
TNX

1 个答案:

答案 0 :(得分:2)

我从未使用过这个库,但在我看来你需要做以下事情:

  1. 定义一个派生自TCefRenderProcessHandlerOwn
  2. 的类
  3. 覆盖您感兴趣的自定义方法。在这种情况下OnBeforeNavigation
  4. 在初始化时,实例化您的类并将其分配给CefRenderProcessHandler全局变量。
  5. type 
      TMyRenderProcessHandler = class(TCefRenderProcessHandlerOwn)
      protected
        function OnBeforeNavigation(const browser: ICefBrowser; 
          const frame: ICefFrame; const request: ICefRequest; 
          navigationType: TCefNavigationType; isRedirect: Boolean): Boolean;
          override;
      end;
    
    function TMyRenderProcessHandler.OnBeforeNavigation(const browser: ICefBrowser; 
      const frame: ICefFrame; const request: ICefRequest; 
      navigationType: TCefNavigationType; isRedirect: Boolean): Boolean;
    begin
      .... your code goes here
    end;      
    
    initialization
      CefRenderProcessHandler := TMyRenderProcessHandler.Create;
    

    该项目附带演示程序来说明这种技术。我建议您研究这些演示,以了解有关这个非常强大的组件的更多信息。