Also um zu Prüfen ob ein Variant = Null ist verwendet man die Funktion VarIsNull() aus der
Unit Variants.
Du hast aber noch ein ganz anderes Problem.
Du greifst ohne Prüfung auf
Document zu:
aNode := WebBrowser1.OleObject.Document.all.tags('table').Item(0);
Wenn kein Document geladen ist, dann ist Document = nil und die Zugriffsverletzung vorprogrammiert!
Daher:
Delphi-Quellcode:
var
document : OleVariant;
begin
if not Assigned(WebBrowser1.Document)
then
raise Exception.Create('
kein HTML-Dokument geladen');
document := WebBrowser1.Document;
aNode := document.all.tags('
table').Item(0);
Dann gehts aber noch weiter.
Du greifst mit Gottvertrauen auf ein Element zu, dass mit 'table' getagged ist.
Und wenn es das nicht gibt? Dann macht's auch "Platsch".
Delphi-Quellcode:
function VarIsDispatchObject(
const v : Variant): Boolean;
// Hilfsfunktion
var
vt : Integer;
begin
vt := VarType(v)
and not varByRef;
Result := (vt = varDispatch);
end;
.....
var
document, table : OleVariant;
begin
if not Assigned(WebBrowser1.Document)
then
raise Exception.Create('
kein HTML-Dokument geladen');
document := WebBrowser1.Document;
table := document.all.tags('
table');
if not VarIsDispatchObject(table)
then
raise Exception.Create('
kein "table"-Element im Dokument enthalten');
aNode := table.Item[0];