showmessage(WebBrowser2.OleObject.document.all.item('text1',0).value);当断开网络时就会出错
时间:2009-04-22
来源:互联网
procedure TForm1.WebBrowser2DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
try
showmessage(WebBrowser2.OleObject.document.all.item('text1',0).value);
except
close;
end;
end;
当网络连接断开时出现下面的错误:
project crazyprpr.exe raised exception class eaccessviolation with message 'access violation at address 0047181f in module 'crazyprpr.exe'.red of addess 00000000'.
请问我该怎么避免这种错误,这错误看不懂,用try...except...也没用。也搞不懂try怎么会没用呢
我想我可以通过先判断网络连接是否正常,当正常时再执行上述代码,判断网络是否连接正常代码如下:
procedure TForm1.Button2Click(Sender: TObject);
function GetOnlineStatus : Boolean;
var ConTypes : Integer;
begin
ConTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN + INTERNET_CONNECTION_PROXY;
if (InternetGetConnectedState(@ConTypes, 0) = False)
then Result := False
else Result := True;
end;
begin
if GetOnlineStatus then
ShowMessage(' Connected')
else ShowMessage(' not Connected');
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if InternetCheckConnection('http://www.baidu.com/', 1, 0) then
ShowMessage('Connected')
else
ShowMessage('Disconnected');
end;
可在网上搜了一些关于网络连接的帖子,有一些网友回复,这些方法并不十分可靠。所以我都没敢用进去,如果没有正确判断出网络连接的话,上述错误还是一样的会发生。
求解答!!!谢谢!
作者: jiang1hai2zhou3 发布时间: 2009-04-22
Delphi(Pascal) code
uses WinInet; if InternetGetConnectedState(nil, 0) then ShowMessage('已连接');
作者: bdmh 发布时间: 2009-04-22
网友也推荐用InternetGetConnectedState,不知道是否可靠。因为有部分网友用了,貌似没有检测正确。
我是想从WebBrowser2中的页面取出text1的值
procedure TForm1.WebBrowser2DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
try
showmessage(WebBrowser2.OleObject.document.all.item('text1',0).value);
except
close;
end;
end;
当网络连接断开时出现下面的错误:
project crazyprpr.exe raised exception class eaccessviolation with message 'access violation at address 0047181f in module 'crazyprpr.exe'.red of addess 00000000'.
请问我该怎么避免这种错误,这是什么错误,用try...except...也没用。怎么try会没有派上用场?
谢谢
作者: jiang1hai2zhou3 发布时间: 2009-04-22
但是奇怪的是为什么必须要联网才能正常呢?不解,期待
作者: bdmh 发布时间: 2009-04-22
作者: jiang1hai2zhou3 发布时间: 2009-04-22
作者: jiang1hai2zhou3 发布时间: 2009-04-22
看你的背景ide应该是bds,要是嫌烦的话,在tools->options->debugger options->language exceptions中(delphi ide的话debugger options是独立于options的),把notify(stop) on language exceptions勾掉
作者: Seamour 发布时间: 2009-04-22
你说得很正确!如果我单独把exe文件拷贝出来,再运行确实不会出现上述错误。
请问这种错误产生的原因是?
也想知道,大家判断网络连接是否成功,用的是那些程序呀。查了资料,说法不一。
大致用到
InternetGetConnectedState
InternetQueryOption
InternetCheckConnection
这三个函数,
作者: jiang1hai2zhou3 发布时间: 2009-04-22
作者: youyidianmimang 发布时间: 2011-11-22
该回复于2011-11-22 15:43:03被管理员删除
- 对我有用[0]
- 丢个板砖[0]
- 引用
- 举报
- 管理
- TOP
|
#10楼 得分:0回复于:2011-11-22 17:12:48
|
作者: scu96124678 发布时间: 2011-11-22
try ... except end是在编译环境报错,那是IDE可以设置的,生成exe后是处理掉的,没关系
作者: lynmison 发布时间: 2011-11-22
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28