![]() |
IWebBrowser2 + Frames + Form
Hi,
Ich versuche auf eine Form in einem Frame über's IWebBrowser2 Interface zuzugreifen. Dies gibt mir immer eine AV. Was ist da falsch?
Delphi-Quellcode:
[edit=r_kerber]Delphi-Tags eingefügt. Mfg, r_kerber[/edit]
var
IE: IWebBrowser2; Doc:IHTMLDocument2; fnr,i: OLEVariant; Frames:IHTMLFramesCollection2; ovElements: OleVariant; begin //.. Doc := IE.Document as IHTMLDocument2; Frames:=Doc.frames as IHTMLFramesCollection2; fnr := 1; ovElements := frames.item(x).Document.forms.Item(1).elements; // AV !!`! here!! for i := 0 to ovElements.Length - 1 do begin //.. end; end; |
Re: IWebBrowser2 + Frames + Form
Danke für die zahlreichen Antworten. Scheint sich niemand damit auszukennen!?
Habe die Antwort aber nach zahlreichen Stunden selber rausgekriegt. (ist aber Berufsgeheimnis) |
Re: IWebBrowser2 + Frames + Form
Ich versuche gerade meine eigene Toolbar im Internet Explorer zum laufen zu kriegen.
ich möchte auch auf ein Formular über eine IWebBrowser2 Schnittstelle zugreifen und habe auch schon rumprobiert! Wie machst du das? Zitat:
Bitte! :dp: |
Re: IWebBrowser2 + Frames + Form
Hallo Felix,
vielleicht hast du einen ähnlichen Fehler gemacht, wie er im gezeigten Code zu sehen ist. Document.frames ist die Kollektion der iFrames im Document. Wenn du ausgehend vom Interface IWebBrowser2 auf die Frames eines FrameSet zugreifen willst, dann etwa so:
Delphi-Quellcode:
Grüße vom marabu
procedure TWebForm.FramesButtonClick(Sender: TObject);
var wb2: IWebBrowser2; doc: IHTMLDocument2; begin wb2 := WebBrowser.ControlInterface; doc := wb2.Document as IHTMLDocument2; ShowMessage(IntToStr(doc.parentWindow.frames.length)); end; |
Re: IWebBrowser2 + Frames + Form
Zitat:
Ob ein Frame drin ist, weiß ich nicht so genau, das einzige was mit frame drinsteht ist
Code:
Ich habe schonmal mit dem TWebBrowser auf ein Formular zugegriffen, da aber über
<iframe marginheight="0" marginwidth="0" width="468" height="60" frameborder="0" scrolling="no" allowtransparency="yes" src="http://www.snapscouts.de/includes/adcontent.php"></iframe>
Delphi-Quellcode:
Oleobject (Variant)
WB.OleObject.document.forms.item(0).elements.item('user').value := Account.Benutzername;
|
Re: IWebBrowser2 + Frames + Form
Ich habs selbst rausgefunden! Es gibt ja noch weißgott andere Schnittstellen als IHTMLDocument2 und IHTMLElement :wall:
Delphi-Quellcode:
So könnte man z.B. das "Editfeld" >username< im Formular >form1< ausfüllen und absenden. :warn: :party: :hello:
var
Doc: IHTMLDocument2; EForm: IHTMLFormElement; EInput: IHTMLInputElement; begin Doc := (IE.Document as IHTMLDocument2); EForm := (Doc.forms.item('form1', '') as IHTMLFormElement); EInput := (EForm.item('username', '') as IHTMLInputElement); EInput.value := Username.Text; EInput.form.submit; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 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