AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi IWebBrowser2 + Frames + Form
Thema durchsuchen
Ansicht
Themen-Optionen

IWebBrowser2 + Frames + Form

Ein Thema von toms · begonnen am 10. Mai 2004 · letzter Beitrag vom 13. Aug 2005
Antwort Antwort
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#1

IWebBrowser2 + Frames + Form

  Alt 10. Mai 2004, 20:19
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]
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: IWebBrowser2 + Frames + Form

  Alt 11. Mai 2004, 20:36
Danke für die zahlreichen Antworten. Scheint sich niemand damit auszukennen!?
Habe die Antwort aber nach zahlreichen Stunden selber rausgekriegt. (ist aber Berufsgeheimnis)
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#3

Re: IWebBrowser2 + Frames + Form

  Alt 13. Aug 2005, 00:05
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!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: IWebBrowser2 + Frames + Form

  Alt 13. Aug 2005, 09:35
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
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#5

Re: IWebBrowser2 + Frames + Form

  Alt 13. Aug 2005, 13:56
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
WB.OleObject.document.forms.item(0).elements.item('user').value := Account.Benutzername; Oleobject (Variant)
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#6

Re: IWebBrowser2 + Frames + Form

  Alt 13. Aug 2005, 15:00
Ich habs selbst rausgefunden! Es gibt ja noch weißgott andere Schnittstellen als IHTMLDocument2 und IHTMLElement

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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:13 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