• 解决 DCEF3 在 BeforePopup 事件中打开新窗体的问题


    此问题的解决方案从 https://groups.google.com/forum/#!topic/delphichromiumembedded/xzshOr-pjnU 获得。

    procedure TBrowser.ChromiumBrowserBeforePopup(Sender: TObject;
      const browser: ICefBrowser; const frame: ICefFrame; const targetUrl,
      targetFrameName: ustring; var popupFeatures: TCefPopupFeatures;
      var windowInfo: TCefWindowInfo; var client: ICefClient;
      var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
      out Result: Boolean);
    begin
      if targetUrl = 'about:blank' then
      begin
        Result := false
      end
      else
      begin
        //ChromiumBrowser.Load(targetUrl);
        PopupUrl := targetUrl;
        SendMessage(Self.Handle, WM_COMMAND, $EF3A, 0);
        Result := true;
      end;
    end;

    声明一个事件用于接收消息。

    procedure CatchPopup(var msg: TMessage); message WM_COMMAND;
    procedure TBrowser.CatchPopup(var msg: TMessage);
    begin
      if Msg.Msg = WM_COMMAND then
      begin
        if Msg.WParam = $EF3A then
        begin
          Framework.CreateTab(2, PopupUrl);
        end;
      end;
    end;
  • 相关阅读:
    写日志
    读写excel
    python安装模块
    数据库
    日志和关键字查找
    时间戳
    os 模块
    图-最小生成树算法之Kruskal及其Java实现
    图-图的表示、搜索算法及其Java实现
    前端实现list排序
  • 原文地址:https://www.cnblogs.com/xiefang2008/p/5535222.html
Copyright © 2020-2023  润新知