AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Quelltext von Seite mittels WebBrowser <ERROR>

Quelltext von Seite mittels WebBrowser <ERROR>

Ein Thema von nanoflo · begonnen am 1. Feb 2010 · letzter Beitrag vom 2. Feb 2010
Antwort Antwort
Seite 1 von 2  1 2   
nanoflo

Registriert seit: 5. Nov 2009
11 Beiträge
 
#1

Quelltext von Seite mittels WebBrowser <ERROR>

  Alt 1. Feb 2010, 22:09
Hi Leute,

ich versuche ein Programm mit delphi zu schreiben welches beim Start automatisch checkt ob es noch aktuell ist (und dann ggf. ein update startet).
Ich habe nun eine php Seite welche z.b. die Zahl 10 anzeigt (keine header/body etc., als quelltext steht nur 10 dort).

Nun möchte ich dies in Delphi auslesen und weiterverarbeiten..ich habe mitlerweile schon dem WebBrowser von Delphi, welcher die Seite anzeigt, kann aber den Inhalt nicht weiter verwenden..

Jetz bin ich auf folgende Funktion gestoßen:

Delphi-Quellcode:
function GetBrowserHtml(const webBrowser: TWebBrowser): String;
var
  strStream: TStringStream;
  adapter: IStream;
  browserStream: IPersistStreamInit;
begin
sleep(1000);
  strStream := TStringStream.Create('');
  try
    browserStream := webBrowser.Document as IPersistStreamInit;
    adapter := TStreamAdapter.Create(strStream,soReference);
    browserStream.Save(adapter,true); //Problem (Zeile 12)
    result := strStream.DataString;
  finally
  end;
  strStream.Free();
end;
(Quelle: Obtain the HTML from the WebBrowser DOM)

bei Zeile 12 streikt Delphi und ich bekomme folgende Debugger Exeption Notification:
Projekt Project1.exe raised exeption class ESccessViolation with message 'Access violation at adress 0045DFF9 in module 'Project1.exe'. Read of address 00000000'. Process stopped. Use Step or Run to continue.

Ich weiß einfach nicht was ich falsch gemacht habe..
Bitte um Hilfe

Danke im Vorraus
Flo
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.105 Beiträge
 
Delphi 12 Athens
 
#2

Re: Quelltext von Seite mittels WebBrowser <ERROR>

  Alt 1. Feb 2010, 22:17
Ganz im Ernst, für sowas nimmt man keinen rießigen WebBrowser.

Stichwort: Indy und Co.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Webo
Webo

Registriert seit: 19. Jul 2008
Ort: Werdohl
37 Beiträge
 
RAD-Studio 2010 Pro
 
#3

Re: Quelltext von Seite mittels WebBrowser <ERROR>

  Alt 2. Feb 2010, 07:51
Neben der Indy-Komponente wäre die UrlMon.pas eine weitere Möglichkeit, die html Seite einfach temporär runterzuladen. Dann brauchst du keine weiteren Komponenten. Schau mal hier: http://www.delphi-treff.de/tipps/net...herunterladen/

Denn, wie himitsu schon sagt: Den TWebBrowser brauchst du in diesem Fall gar nicht
Fabian
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Quelltext von Seite mittels WebBrowser <ERROR>

  Alt 2. Feb 2010, 09:46
Hallo Nanoflo
so sollte es funktionieren:
Delphi-Quellcode:
function WEB2Memo(memo:tmemo):boolean;
var
  ps: IPersistStreamInit;
  ss: TStringStream;
  sa: IStream;
  s: string;
begin
  result:=false;
  if not(form1.webbrowser1.Busy) and (form1.webbrowser1.readystate=readystate_complete)then begin
    ps := form1.WebBrowser1.Document as IPersistStreamInit;
    s := '';
    ss := TStringStream.Create(s);
    try
      sa := TStreamAdapter.Create(ss, soReference) as IStream;
      ps.Save(sa, True);
      memo.text:='';
      memo.lines.Add(ss.Datastring);
      result:=true;
    finally
      ss.Free;
    end;
  end;
......
end;
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
nanoflo

Registriert seit: 5. Nov 2009
11 Beiträge
 
#5

Re: Quelltext von Seite mittels WebBrowser <ERROR>

  Alt 2. Feb 2010, 15:52
Zitat von Webo:
Neben der Indy-Komponente wäre die UrlMon.pas eine weitere Möglichkeit, die html Seite einfach temporär runterzuladen. Dann brauchst du keine weiteren Komponenten. Schau mal hier: http://www.delphi-treff.de/tipps/net...herunterladen/

Denn, wie himitsu schon sagt: Den TWebBrowser brauchst du in diesem Fall gar nicht
Das hört sich ja schon sehr gut an, allerdings funktioniert es bei mir leider nicht. Ich habe die Indys (version 9) heruntergeladen und (hoffentlich) auch richtig installiert, delphi meldet jedoch nach wie vor noch:
[Error] Project1.pas(242): Undeclared identifier: 'idHTTP1'

mein code:
Memo1.Text:=idHTTP1.Get('http://wer.weis.was.php'); Was mache ich falsch?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.105 Beiträge
 
Delphi 12 Athens
 
#6

Re: Quelltext von Seite mittels WebBrowser <ERROR>

  Alt 2. Feb 2010, 15:59
Hast du auch diese Komponente eingebunden/erstellt?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
nanoflo

Registriert seit: 5. Nov 2009
11 Beiträge
 
#7

Re: Quelltext von Seite mittels WebBrowser <ERROR>

  Alt 2. Feb 2010, 16:40
ich habe die batch datei ausgeführt, die extrahierten dateien hab ich ich das delphi verzeichniss kopiert und dann bei delphi unter tools-environment options-library den ordner pfad hinzugefugt und dann die indy70.dpk ausgeführt (habe delphi 7se)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Quelltext von Seite mittels WebBrowser <ERROR>

  Alt 2. Feb 2010, 16:46
So sollte es eigentlich funktionieren:

Delphi-Quellcode:
implementation
uses idhttp;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  MyIdHTTP: TIdHTTP;
  HTMLCode: string;
begin
  MyIdHTTP := TIdHTTP.Create(form1);
try
  HTMLCode := MyIdHTTP.Get('http:................');
finally
  FreeAndNil(MyIdHTTP);
end;
  Memo1.Text:=HTMLCode;
end;
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.105 Beiträge
 
Delphi 12 Athens
 
#9

Re: Quelltext von Seite mittels WebBrowser <ERROR>

  Alt 2. Feb 2010, 16:50
Ja, wo soll dann also idHTTP1 herkommen?

Die Komponente mußt du also auch noch erstellen (oder eben eine, mit diesem Namen, auf die Form gezogen haben)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Webo
Webo

Registriert seit: 19. Jul 2008
Ort: Werdohl
37 Beiträge
 
RAD-Studio 2010 Pro
 
#10

Re: Quelltext von Seite mittels WebBrowser <ERROR>

  Alt 2. Feb 2010, 17:08
Wobei ich dir zum "auf die Form ziehen" rate, dann kann man das wenigstens "anfassen", da es dann auch im Objektinspektor gelistet ist ...
Fabian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:30 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