在使用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