![]() |
iframe auslesen
moinsen
ich brauch mal hilfe :) ich bin neu in der sprache. Wie kann ich ein iframe auslesen also die adresse ich hab gelesen das geht mit pos aber ich komm nicht weiter
Delphi-Quellcode:
aber der sagt typ string und integer gehen nicht. und den PoSex kennter auch nicht
s:=WebBrowser1.OleObject.Document.Body.InnerHtml;
von := pos('src=', s); bis := posex('"', s, von + 1); |
Re: iframe auslesen
PosEx ist in der Unit StrUtils, die musst du einbinden.
In welcher Zeile tritt der Fehler auf? |
Re: iframe auslesen
Ich glaube, ein bisschen mehr Code wäre gut, z.B. wie sind "von" und "bis" deklariert?
|
Re: iframe auslesen
das ist die unit
die funktionen hab ich ausm netz gefischt. meint ihr ihr könnt mir helfen ?? :)
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, SHDocVw, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; WebBrowser1: TWebBrowser; Button2: TButton; Edit2: TEdit; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} function WbEnumFields(WebBrowser: TWebBrowser; SL: TStrings): Boolean; var i, j: Integer; FormItem: Variant; begin Result := True; //Hat das Dokument Forms? (Frames) if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then begin Result := False; Exit; end; //Bearbeite alle Frames for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do begin FormItem := WebBrowser.OleObject.Document.forms.Item(I); // Bearbeite alle Felder eines Frames for j := 0 to FormItem.Length - 1 do begin try SL.Add(FormItem.Item(j).Name); except Result := False; Exit; end; end; end; end; // Durchsuche alle Formulare im Webbrowser nach dem Feldnamen // Übergabe: // Webbroweser: Webbrowser, der die aktuelle Seite enthält // FieldName : Name des gesuchten Felds // Rückgabe // Field : Field.x : Frame Nummer // : Fielf.y : Feld Nummer im Frame // Result : true -> Feld existiert // : false -> Feld existiert nicht // oder kein Dokument geladen function WbFindField(WebBrowser: TWebBrowser; FieldName: string; var Field: TPoint): boolean; var i, j: Integer; FormItem: Variant; begin Result := False; //Hat das Dokument Forms? (Frames) if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then begin Exit; end; //Bearbeite alle Frames for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do begin FormItem := WebBrowser.OleObject.Document.forms.Item(I); // Bearbeite alle Felder eines Frames for j := 0 to FormItem.Length - 1 do begin try // Feldname wurde gefunden // gebe ihn zurück und ende if FormItem.Item(j).Name = FieldName then begin Field.x := i; // Position speichern Field.Y := j; Result := True; exit; end; except Exit; end; end; end; end; // Trage Text in ein Editfeld ein // Übergabe: // Webbroweser: Webbrowser, der die aktuelle Seite enthält // FieldName : Name des gesuchten Felds // Rückgabe // Value : Der Text, der in das Feld hinein soll // Result : true -> kein Fehler // : false -> Feld existiert nicht // oder kein Dokument geladen function WbSetEditField(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean; var Field: TPoint; begin // Position des Felds holen if not WbFindField(WebBrowser, FieldName, Field) then begin Result := false; // Feld existiert nicht exit; // Ende end; try // Feld füllen WebBrowser.OleObject.Document.forms.Item(Field.x).Item(Field.y).Value := Value; Result := True; except Result := false; Exit; end; end; // Lese Text aus einem Editfeld // Übergabe: // Webbroweser: Webbrowser, der die aktuelle Seite enthält // FieldName : Name des gesuchten Felds // Rückgabe // Value : Text, der im Feld steht // Result : true -> kein Fehler // : false -> Feld existiert nicht // oder kein Dokument geladen function WbGetEditField(WebBrowser: TWebBrowser; FieldName: string; var Value: string): Boolean; var Field: TPoint; begin // Position des Felds holen if not WbFindField(WebBrowser, FieldName, Field) then begin Result := false; // Feld existiert nicht exit; // Ende end; try // Feld lesen Value := WebBrowser.OleObject.Document.forms.Item(Field.x).Item(Field.y).Value; Result := True; except Result := false; Exit; end; end; // Setze eine Checkbox // Übergabe: // Webbroweser: Webbrowser, der die aktuelle Seite enthält // FieldName : Name des gesuchten Felds // Rückgabe // Checked : Zustand // Result : true -> kein Fehler // : false -> Feld existiert nicht // oder kein Dokument geladen function WbSetCheckBoxField(WebBrowser: TWebBrowser; FieldName: string; Checked: boolean): Boolean; var Field: TPoint; begin // Position des Felds holen if not WbFindField(WebBrowser, FieldName, Field) then begin Result := false; // Feld existiert nicht exit; // Ende end; try // CheckBox setzen WebBrowser.OleObject.Document.forms.Item(Field.x).Item(Field.y).Checked := Checked; Result := True; except Result := false; Exit; end; end; // Lese eine Checkbox // Übergabe: // Webbroweser: Webbrowser, der die aktuelle Seite enthält // FieldName : Name des gesuchten Felds // Rückgabe // Checked : Zustand // Result : true -> kein Fehler // : false -> Feld existiert nicht // oder kein Dokument geladen function WbGetCheckBoxField(WebBrowser: TWebBrowser; FieldName: string; var Checked: boolean): Boolean; var Field: TPoint; begin // Position des Felds holen if not WbFindField(WebBrowser, FieldName, Field) then begin Result := false; // Feld existiert nicht exit; // Ende end; try // CheckBox setzen Checked := WebBrowser.OleObject.Document.forms.Item(Field.x).Item(Field.y).Checked; Result := True; except Result := false; Exit; end; end; // Click einen Button // Übergabe: // Webbroweser: Webbrowser, der die aktuelle Seite enthält // FieldName : Name des Button // Rückgabe // Result : true -> kein Fehler // : false -> Feld existiert nicht // oder kein Dokument geladen function WbBtnClick(WebBrowser: TWebBrowser; FieldName: string): Boolean; var Field: TPoint; begin // Position des Felds holen if not WbFindField(WebBrowser, FieldName, Field) then begin Result := false; // Feld existiert nicht exit; // Ende end; try // CheckBox setzen WebBrowser.OleObject.Document.forms.Item(Field.x).Item(Field.y).Click; Result := True; except Result := false; Exit; end; end; procedure TForm1.Button1Click(Sender: TObject); begin WebBrowser1.Navigate(Edit1.Text); end; procedure TForm1.Button2Click(Sender: TObject); var von:string; s:string; bis:string; begin WbBtnClick(WebBrowser1, 'submit'); Sleep(5); s:=WebBrowser1.OleObject.Document.Body.InnerHtml; von := pos('src=', s); bis := posex('"', s, von + 1); Edit2.Text := von; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz