Hallo,
die Fehlermeldung muss nicht zwingend in der Zeile auftreten, die Du uns gezeigt hast. Zeig doch bitte mal etwas mehr Quellcode.
Oder hilft Dir diese Funktion?
Delphi-Quellcode:
// ...HTML Formulare mit TWebBrowser automatisch ausfüllen lassen?
function WBFillForm(wb: TWebBrowser; sFieldName: string; sValue: string): Boolean;
var
i, j: Integer;
FormItem: Variant;
begin
Result := False;
//no form on document
if wb.OleObject.Document.all.tags('FORM').Length = 0 then begin
Exit;
end;
//count forms on document
for I := 0 to wb.OleObject.Document.forms.Length - 1 do begin
FormItem := wb.OleObject.Document.forms.Item(I);
for j := 0 to FormItem.Length - 1 do begin
try
// when the fieldname is found, try to fill out
if AnsiUpperCase(FormItem.Item(j).Name) = AnsiUpperCase(sFieldName) then begin
FormItem.Item(j).Value := sValue;
Result := True;
end;
except
Exit;
end;
end;
end;
end;
Der Aufruf müsste dann in etwa so aussehen:
Delphi-Quellcode:
Application.ProcessMessages;
while WebBrowser1.Busy do Application.ProcessMessages;
while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do Application.ProcessMessages;
if not WBFillForm(WebBrowser1,'message', Memo1.Text) then begin
ShowMessage('Das Feld Message konnte nicht gefüllt werden.');
end;
Application.ProcessMessages;
while WebBrowser1.Busy do Application.ProcessMessages;
while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do Application.ProcessMessages;