AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi WebBrowser1.OleObject.Document.Images Problem.
Thema durchsuchen
Ansicht
Themen-Optionen

WebBrowser1.OleObject.Document.Images Problem.

Ein Thema von Firewing · begonnen am 4. Mai 2008 · letzter Beitrag vom 5. Mai 2008
Antwort Antwort
Firewing

Registriert seit: 3. Nov 2005
26 Beiträge
 
#1

WebBrowser1.OleObject.Document.Images Problem.

  Alt 4. Mai 2008, 17:26
Ahoi und zwar lade ich automatisiert alle Bilder des Typs JPG einer HTML-Seite runter und zwar wiefolgt:


Delphi-Quellcode:
function DownloadFile(SourceFile, DestFile: string): Boolean;
begin
  try
    Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0,
      nil) = 0;
  except
    Result := False;
  end;
end;
....

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  k, p: Integer;
  Source, dest, ext: string;
begin
  for k := 0 to WebBrowser1.OleObject.Document.Images.Length - 1 do
  begin
    Source := WebBrowser1.OleObject.Document.Images.Item(k).Src;
    p := LastDelimiter('.', Source);
    ext := UpperCase(Copy(Source, p + 1, Length(Source)));
    if (ext = 'JPG') then
    begin
      //ShowMessage('Found!');
      p := LastDelimiter('/', Source);
      dest := ExtractFilePath(ParamStr(0)) + Copy(Source, p + 1, Length(Source));
      DownloadFile(Source, dest);
    end;
  end;
end;
Dies funktioniert auch wunderbar, ich habe jedoch vor, auf meheren Seiten alle Bilder herunterzuladen er springt also nachdem er alle bilder gespeichert hat auf seite 2.

Wenn ich mich dann auf Seite2 befinde meldet er nen Fehler der in dieser Zeile stecken soll:

Source := WebBrowser1.OleObject.Document.Images.Item(k).Src; Gibt es da etwas zu beachten? Ich leere die Variable auch bevor ich die Seite2 aufrufe...
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

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

Re: WebBrowser1.OleObject.Document.Images Problem.

  Alt 4. Mai 2008, 18:14
Hallo, wurde die Seite beim Zugriff aufs Image Element schon fertig geladen?
Thomas
  Mit Zitat antworten Zitat
Firewing

Registriert seit: 3. Nov 2005
26 Beiträge
 
#3

Re: WebBrowser1.OleObject.Document.Images Problem.

  Alt 4. Mai 2008, 20:28
Ja wurde sie...


Hier die Fehlermeldung:

Zugriffsverletzung bei Adresse 00463667 in Modul "Project1.exe". Lesen von Adresse 00000000
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

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

Re: WebBrowser1.OleObject.Document.Images Problem.

  Alt 4. Mai 2008, 20:51
Tritt der Fehler auch auf, wenn du zuerst Seite 2 lädst?
Thomas
  Mit Zitat antworten Zitat
marabu

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

Re: WebBrowser1.OleObject.Document.Images Problem.

  Alt 4. Mai 2008, 21:30
Hallo,

die in der Fehlermeldung ausgewiesene Adresse 0 signalisiert, dass einer der dereferenzierten Zeiger NIL gewesen ist. Heißer Kandidat ist WebBrowser1.OleObject.Document.

Es bleibt der Verdacht, dass der HTML-Parser noch nicht in den richtigen Zustand gewechselt hat.

Gute Nacht
  Mit Zitat antworten Zitat
Firewing

Registriert seit: 3. Nov 2005
26 Beiträge
 
#6

Re: WebBrowser1.OleObject.Document.Images Problem.

  Alt 5. Mai 2008, 17:08
Zitat:
Tritt der Fehler auch auf, wenn du zuerst Seite 2 lädst?
Nein. Allerdings, dann wenn ich die Seite 1 Aufrufe

Zitat:
Es bleibt der Verdacht, dass der HTML-Parser noch nicht in den richtigen Zustand gewechselt hat.
Habe das auch mal mit Buttons realisiert, sodass er alle Zeit der Welt haben sollte...Oder wie meinst du das? (Eventueller Code? )

MfG
  Mit Zitat antworten Zitat
marabu

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

Re: WebBrowser1.OleObject.Document.Images Problem.

  Alt 5. Mai 2008, 18:08
Du kannst dich beim Ereignis OnDocumentComplete() benachrichtigen lassen.

Wie das geht, kannst du dir z.B. hier anschauen: klick
  Mit Zitat antworten Zitat
Firewing

Registriert seit: 3. Nov 2005
26 Beiträge
 
#8

Re: WebBrowser1.OleObject.Document.Images Problem.

  Alt 5. Mai 2008, 20:44
Achso, ja das ist klar, aber das geht ja damit nicht, deswegen habe ich die einzelnen Schritte ja auch durch Buttons nochmals gemacht, damit die Fehlerquelle "Zeit" wegfällt... hmm sehr merkartig
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

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

Re: WebBrowser1.OleObject.Document.Images Problem.

  Alt 5. Mai 2008, 22:04
Zitat von Firewing:
Achso, ja das ist klar, aber das geht ja damit nicht, deswegen habe ich die einzelnen Schritte ja auch durch Buttons nochmals gemacht, damit die Fehlerquelle "Zeit" wegfällt... hmm sehr merkartig
D.h wenn du per Button1 zur Seite 1 navigierst (Pause bis Dok. geladen), die Bilder durch Klick auf Button2 herunterlädst, per Button3 zur Seite 2 navigierst (Pause bis Dok. geladen), die Bilder durch Klick auf Button4 herunterlädst es nicht funktioniert?
Thomas
  Mit Zitat antworten Zitat
Firewing

Registriert seit: 3. Nov 2005
26 Beiträge
 
#10

Re: WebBrowser1.OleObject.Document.Images Problem.

  Alt 5. Mai 2008, 22:45
exakt.

Gibts da noch nen "Trick" den man mal probieren könnte?
  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 20:24 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