![]() |
Quelltext von Seite mittels WebBrowser <ERROR>
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:
(Quelle:
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; ![]() 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 |
Re: Quelltext von Seite mittels WebBrowser <ERROR>
Ganz im Ernst, für sowas nimmt man keinen rießigen WebBrowser.
Stichwort: Indy und Co. |
Re: Quelltext von Seite mittels WebBrowser <ERROR>
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:
![]() Denn, wie himitsu schon sagt: Den TWebBrowser brauchst du in diesem Fall gar nicht ;-) |
Re: Quelltext von Seite mittels WebBrowser <ERROR>
Hallo Nanoflo
so sollte es funktionieren:
Delphi-Quellcode:
Gruß
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; K-H |
Re: Quelltext von Seite mittels WebBrowser <ERROR>
Zitat:
[Error] Project1.pas(242): Undeclared identifier: 'idHTTP1' mein code:
Delphi-Quellcode:
Was mache ich falsch?
Memo1.Text:=idHTTP1.Get('http://wer.weis.was.php');
|
Re: Quelltext von Seite mittels WebBrowser <ERROR>
Hast du auch diese Komponente eingebunden/erstellt?
|
Re: Quelltext von Seite mittels WebBrowser <ERROR>
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)
|
Re: Quelltext von Seite mittels WebBrowser <ERROR>
So sollte es eigentlich funktionieren:
Delphi-Quellcode:
Gruß
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; K-H |
Re: Quelltext von Seite mittels WebBrowser <ERROR>
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) |
Re: Quelltext von Seite mittels WebBrowser <ERROR>
Wobei ich dir zum "auf die Form ziehen" rate, dann kann man das wenigstens "anfassen", da es dann auch im Objektinspektor gelistet ist ...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz