使用EmbeddedWB控件的时候,发现有一些错误完全无法用try..except去接,这些错误的提示并非是通过Raize抛出的,而是通过Windows消息传递而来,因此要解决此问题,必须从消息下手。
在EmbeddedWB.pas中,找到重写消息的方法,即TEmbeddedWB.FormWndProc(),其中的代码即是消息的接收,而看其他码,它正是处理了WM_ACTIVATE消息,即有对话框弹出时触发的消息。
即然出错信息也是对话框,那么从此消息跟入就不会有错,继续往下读代码,发现有一句
SetWindowText(Wnd, PChar(S));
直觉告诉我应该在此处下个断点,下了之后调试,果然发现了,这里的变量S就是出错对话框的标题!
那么参数中的Wnd也就是对话框的句柄了。没想到这么简单就直接找到了关键之处
随后要做的,就是把这个对话框关掉了,在对话框显示后,立刻关闭之,这时的一闪而过是用户肉眼无法捕捉的,也不会造成界面闪烁。
于是在 if
FDisableErrors.FScriptErr then
下添加一段代码
try
hButton := FindWindowEx(wnd, 0, 'Button', '&No');
SendMessage(hButton, BM_Click, 0,0);
except on
E: Exception do
end
;
这样就直接发送了No这个Button被点击的消息,对话框就自己关掉了
如果是中文版的Windows,只需要把 "&No" 改成 "否(&N)" 即可
如果觉得这么做不放心,要启动出错报告怎么办呢?办法也很简单
在EmbeddedWB控件里,有一个属性的设置,将DisableErrors.ScriptError改成False就好了
分享到:
相关推荐
4. **安全性**:虽然EmbeddedWB允许在应用中加载任意网页,但开发者需要注意安全问题,防止恶意代码的执行。源代码的开放使得可以添加额外的安全检查和过滤机制。 5. **跨平台支持**:虽然主要针对Windows平台,但...
"Demo"目录下的示例代码展示了EmbeddedWb的典型用法,包括基本的网页加载、页面导航以及与JavaScript的交互。这些示例对于初学者来说是极好的学习素材,通过运行和调试,能直观地理解各个功能的实现。"Source"目录...
《嵌入式Web服务器技术在Delphi XE 10.4中的应用——基于EmbeddedWb组件》 在软件开发领域,尤其是企业级应用中,嵌入式Web服务器(Embedded Web Server, EWS)已经成为不可或缺的一部分。它们允许用户通过Web界面...
4. **高性能**:通过优化的内核,EmbeddedWB-XE2在处理复杂网页时表现出优秀的性能。 5. **跨平台**:尽管主要针对Delphi XE2,但经过适当的调整,也可以在其他版本的Delphi或者C++Builder中使用。 在实际开发中,...
你可以禁用某些浏览器功能,比如禁止弹出窗口,或者自定义浏览器的外观,比如更改状态栏文本。此外,还可以监听并处理HTTP请求,实现对网络通信的控制。 7. **安全与隐私** 考虑到安全性和隐私,开发者需要注意...
Delphi第三方控件EmbeddedWB,这是一个不错的浏览器控件,比Delphi自带的Webbrowser要强悍 EmbeddedWB安装方法: 1.下载压缩包,飘易下载的是EmbeddedWB v14.67.0版本,下载地址:...
【标题】"EmbeddedWB XE8可用" 指的是在Embarcadero XE8集成开发环境中,EmbeddedWB(嵌入式Web浏览器)组件能够正常运行和使用。这是一个重要的消息,因为对于开发者来说,知道特定版本的软件或组件是否兼容他们...
附带的源码和应用实例为开发者提供了深入理解控件工作原理的机会,这对于学习如何利用控件的各种特性和解决实际问题非常有帮助。源码分析可以帮助开发者调试、优化或者修复潜在问题,同时也能为创建新的自定义功能...
EmbeddedWB是一款强大的Web浏览器控件,可帮助开发者轻松地在其应用程序中集成网页浏览功能。 #### 二、准备工作 在开始安装之前,请确保已经拥有以下条件: 1. **EmbeddedWB安装包**:包含用于Delphi2010和...
这个控件极大地扩展了Delphi开发者的工具箱,使得他们能够创建出包含网页交互的复杂应用,例如自动化登录、表单提交等任务。 首先,我们来深入了解一下`EmbeddedWB`。它是一个开源的ActiveX控件,由Christoph ...
5. **更好的错误处理**:可能有更完善的错误处理机制,帮助开发者调试和解决问题。 6. **额外的功能**:例如,可能支持多线程浏览,防止应用程序因为网页加载而卡死。 标签 "EmbeddedWB" 确认了这个组件专注于提供...
3. 初始化和配置:通过设置TEmbeddedWB的属性,如InitialURL指定初始加载的网页,SilentLoad禁用加载时的提示,或启用AllowNavigation控制用户是否可以导航到其他页面。 4. 事件处理:利用TEmbeddedWB提供的事件,...
《Delphi嵌入式浏览器——EmbeddedWB 17.0完全源码解析》 在软件开发领域,尤其是在桌面应用中,有时候需要集成网页浏览功能,这时嵌入式浏览器组件就显得尤为重要。本文将深入探讨Delphi平台下的一款嵌入式浏览器...
例如,`Silent`属性可以实现静默模式,避免弹出对话框打扰用户;`DesignMode`属性则允许在运行时编辑网页内容,这对于创建富文本编辑器或者在线排版工具非常有用。另外,`History`对象则提供了浏览历史记录管理,...
同时,启用`Silent`属性,避免弹出安全警告。 3. **定义接口**:在Delphi项目中,定义一个接口(例如`IWebBridge`),包含需要供JavaScript调用的方法。这些方法可以用来执行Delphi端的任务,如打开新窗口、发送...
5. **文档**:包括用户手册、API参考、教程等,帮助开发者学习和解决问题。 6. **配置文件**:用于设置开发环境的偏好和选项,如编译器设置、调试器配置等。 7. **安装脚本**:用于自动完成安装过程,包括注册组件、...
总的来说,EmbeddedWB v14.67.0提供了一套完整的嵌入式Web服务器解决方案,特别是对于使用D5至D2009 Delphi的开发者来说,这是一个宝贵的资源,不仅可以直接应用于项目,还能深入学习Web服务器的开发技术。