使用Cef4delphi调用chromium.Loadurl()导致程序置顶问题的解决方法

欢迎加入全网最大Delphi 技术交流群 682628230

在使用Delphi Rad Studio 10.3和Cef4delphi时,调用chromium.Loadurl()chromium.Browser.MainFrame.Loadurl()可能导致程序窗口意外置顶。为解决此问题,可以通过以下方法调整焦点处理:

在您的窗体类中,实现Chromium_OnSetFocus事件处理程序,并设置其返回值为True,以确保正确管理焦点而不引起窗口置顶的问题。

procedure TfrmFatchView.Chromium_OnSetFocus(Sender: TObject; const browser:
    ICefBrowser; source: TCefFocusSource; out Result: Boolean);
begin
  // 返回True表示已处理焦点请求,避免默认行为导致窗口置顶
  Result := True;
end;

此外,虽然原解答中提到了Chromium_OnLoadingStateChange事件,但它与解决窗口置顶问题不直接相关。该事件主要用于监听加载状态的变化,在这个场景下主要用于保持默认的窗口样式属性不变。如果仅针对解决置顶问题,重点应放在OnSetFocus事件上。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享