您自己说可能找不到该元素,那么您期望什么
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 库使用变体,您可以在其中找到 GetElementID 返回的正确类型,那么,正如@GerryColl 所提到的,您可以使用element: OLEVariant
并检查 NULL 而不是 nil指针。