Hallo,
ich habe unter
www.delphi-library.d...r+arbeiten_8482.html eine Unit gefunden mit der sich Felder im Webbrowser füllen lassen.
Leider gibt es die Einschränkung:
| Zitat: |
| Kommt ein Feldname in mehreren Frames vor, wird immer der aus dem ersten Frame verwendet. Es sollte allerdings kein Problem sein für diesen Fall die Routinen zu anzupassen. |
Und genau das ist für meine Bedürfnisse nicht zweckmäßig. Es sollte so sein, dass der Wert des mehrfach vorkommenden Feldnamens in allen Frames gesetzt wird.
Und genau bei der Aufhebung dieser Einschränkung beiße ich mir die Zähne aus.
Ich vermute, die Anpassung muss in der WbSetEditField vorgenommen werden.
Nur wie?
Mein Versuch war dieser:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40:
| function WbSetEditField(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean; var Field: TPoint; I, j : integer; FormItem: Variant; begin
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 if not WbFindField(WebBrowser, FieldName, Field) then begin Result := false; exit; end; try WebBrowser.OleObject.Document.forms.Item(Field.x).Item(Field.y).Value := Value; Result := True; except Result := false; Exit; end; end; end; end; |
Aber leider brachte das keine Änderung.
Wie und wo muss ich ansetzen, damit ein Feld in allen Forms ersetzt wird?
Schönen Gruß
Susi