Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IWebBrowser2 + Frames + Form (https://www.delphipraxis.net/21965-iwebbrowser2-frames-form.html)

toms 10. Mai 2004 19:19


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:
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;
[edit=r_kerber]Delphi-Tags eingefügt. Mfg, r_kerber[/edit]

toms 11. Mai 2004 19:36

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)

F.W. 12. Aug 2005 23:05

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:

(ist aber Berufsgeheimnis)
Naja, sind ja quasi im selben "Beruf" ;)

Bitte! :dp:

marabu 13. Aug 2005 08:35

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:
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;
Grüße vom marabu

F.W. 13. Aug 2005 12:56

Re: IWebBrowser2 + Frames + Form
 
Zitat:

Ich versuche auf eine Form in einem Frame über's IWebBrowser2
Ich danke dir erstmal für die schnelle Antwort! Aber ich brauche eher den Teil, mit dem du auf das Formular zugreifst!

Ob ein Frame drin ist, weiß ich nicht so genau, das einzige was mit frame drinsteht ist
Code:
<iframe marginheight="0" marginwidth="0" width="468" height="60" frameborder="0" scrolling="no" allowtransparency="yes" src="http://www.snapscouts.de/includes/adcontent.php"></iframe>
Ich habe schonmal mit dem TWebBrowser auf ein Formular zugegriffen, da aber über
Delphi-Quellcode:
WB.OleObject.document.forms.item(0).elements.item('user').value := Account.Benutzername;
Oleobject (Variant)

F.W. 13. Aug 2005 14:00

Re: IWebBrowser2 + Frames + Form
 
Ich habs selbst rausgefunden! Es gibt ja noch weißgott andere Schnittstellen als IHTMLDocument2 und IHTMLElement :wall:

Delphi-Quellcode:
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;
So könnte man z.B. das "Editfeld" >username< im Formular >form1< ausfüllen und absenden. :warn: :party: :hello:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz