使用DOM Delphi 7访问冲突错误

时间:2012-06-14 04:58:19

标签: delphi dom

我正在构建一个软件来处理网站上的订单。我正在使用DOM浏览网站,当我在“错误”页面上使用命令时,我希望我的应用程序不会挂起。

例如:

try
  WebBrowser.OleObject.Document.GetElementByID('ContentPlaceHolder1_txtCommande').setAttribute('value', lblDate.Caption);
except
end;

我想要的只是在找不到该字段时忽略该错误,因为此错误并不重要。谢谢!

编辑:当我的意思是DOM

时写了ADO

1 个答案:

答案 0 :(得分:5)

你自己说可能找不到元素,所以你期望什么

WebBrowser.OleObject.Document.GetElementByID('ContentPlaceHolder1_txtCommande')

在这种情况下返回nil以外的其他内容?然而,你“公然”使用附加的任何内容

.setAttribute('value', lblDate.Caption);

到它。

将您的代码更改为

var
  element: IDomElement; // Whatever it should really be
begin
  element := WebBrowser.OleObject.Document.GetElementByID('ContentPlaceHolder1_txtCommande');
  if Assigned(element) then
    element.setAttribute('value', lblDate.Caption);

修改

如果您正在使用变体而不是通过其类型库或其他一些xml库使用msxml,您可以在其中找到GetElementID返回的正确类型,那么,正如@GerryColl所提到的,您可以使用element: OLEVariant和检查NULL而不是nil指针。