AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TWebBrowser : Alle Input Felder, Bilder etc. auflisten
Thema durchsuchen
Ansicht
Themen-Optionen

TWebBrowser : Alle Input Felder, Bilder etc. auflisten

Ein Thema von Assun · begonnen am 2. Aug 2005 · letzter Beitrag vom 7. Sep 2005
Antwort Antwort
Seite 2 von 2     12   
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#11

Re: TWebBrowser : Alle Input Felder, Bilder etc. auflisten

  Alt 4. Aug 2005, 17:12
Zitat von Assun:
 root := TreeView1.Items; da bringt er mir "undefinierter Bezeichner" obwohl ein TreeView namens TreeView1 existiert :gruebel
Mein Beispiel ist für Delphi 5. Du verwendest anscheinend D2005.
Hier musst du einfach selbstständig etwas Forschungsarbeit in der OH leisten.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#12

Re: TWebBrowser : Alle Input Felder, Bilder etc. auflisten

  Alt 4. Aug 2005, 17:31
Mist. ich hab doch kein Plan von dem scheiss

kann man meinen falschen Code oben nicht einfach korrigieren ?
Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#13

Re: TWebBrowser : Alle Input Felder, Bilder etc. auflisten

  Alt 4. Aug 2005, 22:09
Hallo,

hab mal deinen Code überarbeitet.
Die falschen Zeilen sind auskommentiert, neue durch //neu gekennzeichnet.
In einem Post zuvor hatte ich geschrieben :
"Wenn frames.length = 0 ist hast Du keine Frames ",
deshalb der Bereich mit den neuen Zeilen.
Delphi-Quellcode:
var z,z2,count1,count2 : Integer;
begin
  with WebBrowser1 do
  begin
  count1 := OleObject.document.frames.length;
  if count1 = 0 then//keine frames //neu
    begin //neu
    count1 := OleObject.document.images.length; //neu *
    for z := 0 to Count1-1 do //neu
      Memo1.Lines.Add(OleObject.document.images.Item(z).Src); //neu
    end //neu
    else //neu
      for z := 0 to Count1-1 do
        begin
        //Count2 := OleObject.document.frames.item(z).document.images.item(z).Src;
        Count2 := OleObject.document.frames.item(z).document.images.length; //neu
        for z2 := 0 to Count2-1 do
          //Memo1.Lines.Add(OleObject.document.images.Item(z).Src);
          Memo1.Lines.Add(OleObject.document.frames.item(z).document.images.item(z2).Src);//neu
        end;
  end;
getestet u.a. mit:
ohne Frames = Delphi-Praxis
mit Frames = SELFHTML Framesbeispiel

Deine Web-Seite erzeugt bei mir auch die Fehlermeldung "Zugriff verweigert",
die Ursache wird in deinen Seiten liegen, da ich so ca 10 andere mit dem Code getestet hab.

//Edit: Wenn jemand den Grund kennt, oder eine Lösung hat, wäre schön.
//Edit2: den Code von shmia konnte ich nicht testen, da mein Delphi die Funktion VariantIsObject nicht kennt und Google auch nicht.
//Edit3: Zeile mit //neu * eingefügt
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#14

Re: TWebBrowser : Alle Input Felder, Bilder etc. auflisten

  Alt 5. Aug 2005, 09:54
Zitat von Lannes:
//Edit2: den Code von shmia konnte ich nicht testen, da mein Delphi die Funktion VariantIsObject nicht kennt und Google auch nicht.
Ups, hatte ich vergessen.
VariantIsObject ist eine kleine, nützliche Hilfsfunktion, die prüft, ob in einem OleVariant ein Dispatch-Interface steckt.
Delphi-Quellcode:
function VariantIsObject(const value:OleVariant):boolean;
begin
   result := (VarType(value) = varDispatch);
end;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#15

Re: TWebBrowser : Alle Input Felder, Bilder etc. auflisten

  Alt 5. Aug 2005, 15:21
Zitat von shmia:
...
Ups, hatte ich vergessen.
VariantIsObject ist eine kleine, ...
@shmia : Besten Dank

Der Code von shmia funktioniert gut und liest alle Elemente aus dem Tag <FORMS> aus,
berücksichtigt aber keine Frames.
Damit kann die Zugriffsverweigerung des IE/Webbrowsers leider auch nicht umgangen werden.

Im Zusammenhang mit Frames habe ich festgestellt das
OleObject.document.frames.length auch den Tag <iframe> berücksichtigt
Also wären folgende Situationen abzufangen:
- Framesets
- verschachtelte Framesets
- Seite incl. IFrame
- Seite incl. IFrame in einem Frame
- IFrame innerhalb eines IFrame
also rekursiv

Bei der Seite http://assun.de/ kann die Zugriffverweigerung umgangen werden:
1. Auslesen der Adresse der Seite die im Frame angezeigt wird
2. Laden der Seite im WebBrowser
3. auslesen der Images wie gehabt

Delphi-Quellcode:
...
sFrameName := WebBrowser1.OleObject.Document.all.tags('FRAME').Item(0).getattribute('src',0);
Webbrowser.Navigate(sFrameName);
...
ist aber keine Ideal-Lösung.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
marabu

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

Re: TWebBrowser : Alle Input Felder, Bilder etc. auflisten

  Alt 6. Sep 2005, 20:57
Hi folks,

für den Fall, dass dieses Problem noch nicht ganz gelöst ist, möchte ich euch noch diesen Hinweis geben: klick. Vielleicht hilft er ja weiter.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#17

Re: TWebBrowser : Alle Input Felder, Bilder etc. auflisten

  Alt 6. Sep 2005, 21:58
Hallo,

@marabu
kann der WebBrowser nicht
Fehlermeldung:
Code:
Die Methode 'Window' wird vom Automationsobjekt nicht unterstützt.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
marabu

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

Re: TWebBrowser : Alle Input Felder, Bilder etc. auflisten

  Alt 7. Sep 2005, 07:13
Zitat von Lannes:
kann der WebBrowser nicht
Wetten dass?

Delphi-Quellcode:
procedure TWebForm.FramesButtonClick(Sender: TObject);
var
  win: IHTMLWindow2;
  doc: IHTMLDocument2;
  fc: IHTMLFramesCollection2;
begin
  doc := WebBrowser.Document as IHTMLDocument2;
  win := doc.parentWindow;
  fc := win.frames;
  ShowMessage(Format('%d frames found', [fc.length]));
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 20:26 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