Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi websiteteile in delphi-programm einzeigen lassen (https://www.delphipraxis.net/77835-websiteteile-delphi-programm-einzeigen-lassen.html)

ricolaus 25. Sep 2006 15:47


websiteteile in delphi-programm einzeigen lassen
 
hallo,

naja wie gesagt ich möchte nicht die komplette website anzeigen lassen sondern nur einen abschnitt. kann mir da vielleicht jemand weiterhelfen?

schonmal danke im voraus

Balu der Bär 25. Sep 2006 15:52

Re: websiteteile in delphi-programm einzeigen lassen
 
Was denn für einen Abschnitt? Müsstest du schon etwas spezialisieren. ;)

Generell könntest du die Webseite herunterladen, die unrelevanten Teile aus dem Quellcode löschen und den Rest dann einfach per TWebBrowser anzeigen.

marabu 25. Sep 2006 15:53

Re: websiteteile in delphi-programm einzeigen lassen
 
Herzlich willkommen in der Delphi-PRAXiS, ricolaus.

Die Komponente TWebBrowser (alternativ TEmbeddedWebBrowser) kannst du zur Anzeige von HTML verwenden. Was genau hast du vor?

Kannst du noch die von dir verwendete Delphi-Version in deinem DP-Profil nachtragen?

Freundliche Grüße vom marabu

ricolaus 25. Sep 2006 15:56

Re: websiteteile in delphi-programm einzeigen lassen
 
hmm najagut also ich hab auch schon aus dem html-code den teil ausgelesen den ich will aber ich bekomm ihn nicht in den webbrowser rein. mit navigate geht es ja nicht. oder ich bekomm es nur nicht hin....

Balu der Bär 25. Sep 2006 15:57

Re: websiteteile in delphi-programm einzeigen lassen
 
Du speicherst den veränderten Code einfach wieder also html-Datei ab, und rufst sie dann per
Delphi-Quellcode:
Webbrowser1.Navigate('seite.hmtl');

ricolaus 25. Sep 2006 15:58

Re: websiteteile in delphi-programm einzeigen lassen
 
und geht das auch ohne abspeichern? das ich es aus einer variable auslesen kann?

Balu der Bär 25. Sep 2006 16:04

Re: websiteteile in delphi-programm einzeigen lassen
 
Reine Spekulation, da ich mir da auch nicht sicher bin:

Der Quelltext sollte eigentlich in
Delphi-Quellcode:
WebBrowser.OleObject.Document.body.parentElement.outerHTML
stehen, eventuell wäre es möglich den veränderten Quelltext einfach dort einzufügen. Bin mir aber wie gesagt nicht sicher.

ricolaus 25. Sep 2006 16:10

Re: websiteteile in delphi-programm einzeigen lassen
 
hmm ne geht leider nicht.....da entsteht ein laufzeitfehler.....

marabu 25. Sep 2006 16:23

Re: websiteteile in delphi-programm einzeigen lassen
 
Probiere es so:

Delphi-Quellcode:
procedure TWebForm.DemoButtonClick(Sender: TObject);
const
  markup = '<html><body><h1>abc</h1></body></html>';
begin
  WebBrowser.OleObject.Document.Clear;
  WebBrowser.OleObject.Document.write(markup);
end;
Nimm dazu deinen markup code.

marabu

ricolaus 25. Sep 2006 16:31

Re: websiteteile in delphi-programm einzeigen lassen
 
das geht auch nicht so richtig....es entsteht ein laufzeitfehler.
aber was mir auch aufgefallen ist, ist dass wenn man das per hand eintippt dann kommen doch immer vorschläge nach einem punkt, welche eigenschaft oder methode vorhanden ist. das geht auch noch mit OleObject aber danach kommen dann keine vorschläge mehr.
muss ich da vllt noch ne uses eintragen oder wo dran könnt das liegen?

marabu 25. Sep 2006 16:35

Re: websiteteile in delphi-programm einzeigen lassen
 
Der Laufzeitfehler kommt, weil du den Browser wahrscheinlich noch nicht initialisiert hast:

Delphi-Quellcode:
procedure TWebForm.FormCreate(Sender: TObject);
begin
  WebBrowser.Navigate('about:blank');
end;
Die Code-Vervollständigung kommt nicht, wenn du gerade mit Automationsobjekten arbeitest (OleObject).

marabu

ricolaus 25. Sep 2006 16:39

Re: websiteteile in delphi-programm einzeigen lassen
 
okay jetzt geht es, aber jetzt hab ich das problem, das keine grafiken angezeigt werden....
habt ihr dafür vllt noch ne lösung?

Balu der Bär 25. Sep 2006 16:44

Re: websiteteile in delphi-programm einzeigen lassen
 
Sicher das die Grafiken in dem Pfad liegen so wie er im Quelltext angegeben wurde?

ricolaus 25. Sep 2006 16:47

Re: websiteteile in delphi-programm einzeigen lassen
 
naja müsste ja eigentlich....ich lade mit dem idhttp den quellcode in eine stringvariable und gebe sie dann in dem browser wieder aus. was anderes passiert im moment noch nicht....

ricolaus 25. Sep 2006 17:39

Re: websiteteile in delphi-programm einzeigen lassen
 
hmm also ich bekomme das nicht hin.....so entsteht immer ein syntaxfehler und es werden keine grafiken oder ähnliches angezeigt. man sieht zwar den text der auch auf der seite ist, jedoch auch nicht in der richtigen formatierung. wenn man auf links klickt bekomm ich auch einen fehler.....

Balu der Bär 25. Sep 2006 17:43

Re: websiteteile in delphi-programm einzeigen lassen
 
Zitat:

Zitat von ricolaus
naja müsste ja eigentlich....ich lade mit dem idhttp den quellcode in eine stringvariable und gebe sie dann in dem browser wieder aus. was anderes passiert im moment noch nicht....

Richtig. Du zeigst die Seite auf deinem Rechner an, also nicht mehr auf dem Weberver. Und wenn Bilder dann a'la [img]images/bild.png[/img] im Quelltext stehen können sie logischerweise nicht geladen werden, da dieser Ordner bei dir nicht existiert. ;)

ricolaus 25. Sep 2006 17:54

Re: websiteteile in delphi-programm einzeigen lassen
 
und ne andere möglichkei gibt es nicht, das irgendwie zu realisieren?

marabu 25. Sep 2006 18:00

Re: websiteteile in delphi-programm einzeigen lassen
 
Wenn es dir nichts ausmacht, dann lade die ganze Seite in den WebBrowser und entferne die ungewollten Teile im Ereignis OnDocumentComplete().

Gruß

marabu

ricolaus 25. Sep 2006 18:43

Re: websiteteile in delphi-programm einzeigen lassen
 
sowas geht?
und was muss ich dann da enau schreiben?

marabu 25. Sep 2006 18:51

Re: websiteteile in delphi-programm einzeigen lassen
 
Den Ladevorgang stößt du mit WebBrowser.Navigate(url) an. Das Zurechtstutzen können wir dir erst zeigen, wenn du sagst was eliminiert werden soll.

Gruß, marabu

ricolaus 25. Sep 2006 18:56

Re: websiteteile in delphi-programm einzeigen lassen
 
hmm naja würde es gehen wenn du mir als beispiel mal das mit der googleseite machen könntest. wenn ich da zum beispiel nur das eingabeedit haben will und die zwei buttons darunter. ich denk mal mit so einem beispiel müsst ich das dann auch hinbekommen

marabu 26. Sep 2006 19:41

Re: websiteteile in delphi-programm einzeigen lassen
 
Hallo,

Programmierbeispiele zum Umgang mit HTML-Code, speziell in Verbindung mit TWebBrowser und dem MS HTML DOM, findest du in der Internet-Rubrik der DP reichlich. Ich erstelle dir auch gerne ein paar Zeilen neu, allerdings habe ich den Eindruck, dass du noch nicht so recht weißt, was du willst oder du hast es noch nicht klar ausgedrückt.

Eingabefelder bei Google und anderswo sind in Web-Formulare eingebettet. Warum willst du drumherum etwas entfernen? Oft befindet sich gerade im Drumherum noch dringend benötigtes - CSS-Code zum genauen platzieren der Elemente oder SCRIPT-Code für Prüfungen. Möchtest du den Zugang zu einer website automatisieren?

Gute Nacht

marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:35 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