3

我在 TForm 中嵌入了 TWebBrowser。每当我按下 Alt 按钮时,浏览器窗口就会变成白色。如果我在它周围拖动表格,它会正确重绘。

我做错了什么?

如果这很重要,我有 DevExpress Bars 和 Quantum Grid 吗?

我使用 Delphi 2010 和 Windows 7 和 XP SP2。IE 版本是 7 和 8。所有可重现。

在按 Alt 之前: 在按下 Alt 之前

按 Alt 后:

按 Alt 后

我已经通过 usnig 解决了以下问题:

procedure TMainForm.WndProc(var Message: TMessage);
begin
  inherited WndProc(Message);
  if Message.Msg = WM_UPDATEUISTATE then
  begin
    if Assigned(ProblematicWebBrowser) then
      ProblematicWebBrowser.Repaint;
  end;
end;
4

2 回答 2

3

你不说你用的是什么版本的Delphi,你用的是什么版本的Windows,或者你安装的IE是什么版本,就是TWebBrowser封装的。(作为一般说明,因为您是这里的新用户,所以在提出这样的问题时,您确实需要提供更多信息。假装是您的软件用户报告了这个错误 - 您会举起手说“呸,没有转载。为什么他们不能告诉我他们在做什么?“阅读您的问题时,我们也一样。)

但是,也就是说,当您按下 Alt 键时它消失的事实是一个提示。Windows 可以选择隐藏加速键(下划线标记,例如文件菜单上带下划线的 F),直到用户按下 Alt 键。当它发生时,控件会被发送一条WM_DRAWITEM消息,指示发生了一些变化。另请参阅WM_CHANGEUISTATE

在过去版本的 Delphi 中处理此问题(请参阅此示例错误)中存在错误,包括当按下 Alt 键时控件完全消失的错误。TWebBrowser 未列在该 QC 项目中,但它很可能受到影响。

所以我的猜测是:

  • 您使用的是 Delphi 7 或更早版本
  • 您使用的是 XP 或更高版本,并且正在运行主题
  • 您遇到了这个错误,它影响 TWebBrowser 控件或其父控件

解决方案:升级 Delphi 或应用QC 项中列出的修复程序。

于 2010-09-10T05:06:54.457 回答
0

FWIW,在 D2010 中使用带有 TWebBrowser 的普通表单,按 Alt 对 WebBrowser 显示没有影响。

于 2010-09-09T22:34:11.163 回答