Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#22

AW: Webbrowser OleObject - Felder füllen

  Alt 10. Apr 2013, 01:30
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]; ?
  Mit Zitat antworten Zitat