Hallo,
also nochmal, da ich langsam aber sicher den Durchblick verliere (ist wohl doch inzwischen zu früh
)
Du nutzt zum Befüllen diese Routine:
Delphi-Quellcode:
function FillForm(WebBrowser: tembeddedwb; FieldName: string; Value: string): Boolean;
var
i, j: Integer;
FormItem: Variant;
begin
Result := False;
//no form on document
if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
begin
Exit;
showmessage('Exit');
end;
//count forms on document
for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
begin
FormItem := WebBrowser.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 FormItem.Item(j).Name = FieldName then
begin
FormItem.Item(j).Value := Value;
Result := True;
end;
except
Exit;
end;
end;
end;
end;
Ändere mal bitte den Except-Block in
Delphi-Quellcode:
exept
on e :
Exception do begin
Memo1.Lines.Add(e.
Message);
// oder auch
ShowMessage(e.
Message);
end;
end;
Ist bei Dir der Debugger aktiv, so dass Du alle Fehler mitbekommst?
Und ändere bitte mal
if FormItem.Item(j).Name = FieldName then
in
AnsiUpperCase(FormItem.Item(j).Name) = AnsiUpperCase(FieldName)
Setze mal 'nen Breakpoint auf die Zeile
FormItem.Item(j).Value := Value;
Die beiden Zeilen
Delphi-Quellcode:
Exit;
showmessage('Exit');
solltes Du mal vertauschen, beim Exit bist Du nämlich vor dem ShowMessage schon aus der Routine raus und bekommst nie zu sehen, wenn die Routine dort schon aussteigt.
Funktioniert mit der Routine das Befüllen von Feldern, die Du auch auf anderem Weg befüllt bekommst?
Also z. B.
FillForm(webbrowser1,'LoginForm_Login', memo2.Lines[2])
statt
webbrowser1.oleobject.document.forms.item(1).elements.item('LoginForm_Login').value := memo2.Lines[2];
?