Entwickler-Ecke

Internet / Netzwerk - IdHttp in TWebbrowser anzeigen


LittleBen - Sa 22.10.11 19:48
Titel: IdHttp in TWebbrowser anzeigen
Hallo,
wenn ich eine Verbindung per IdHttp.Post('',Params) aufbaue, wie kann ich diese dann auf den TWebbrowser übertragen? Also dass ich die Seite sehe, die ich mit IdHttp "geöffnet" habe.

Viele Grüße,
Benny


jaenicke - Sa 22.10.11 21:04

Theoretisch kannst du den Seitenquelltext, den du zurückbekommst, in TWebBrowser packen.

Ich frage mich nur: Was hat das für einen Sinn? :gruebel:
Rufe die Seite doch direkt im TWebBrowser auf, dann sparst du dir die Verrenkungen...

Falls du das übersehen hast: die Methode Navigate hat mehr mögliche Parameter als nur die Adresse. Der vierte heißt nicht nur PostData (auch in Delphi), du kannst da auch wirklich Post-Parameter hineinpacken. :zwinker:


LittleBen - Sa 22.10.11 21:37

Ich will die Verbindung von dem IdHttp nur testweise im Webbrowser anzeigen lassen, um zu sehen, was er gerade macht.

Wie kann ich dem TWebbrowser den Seitenquelltext übergeben?


Nano-Ware - Sa 22.10.11 22:10

Speicher den Code als *.html und ruf die Datei auf.


jaenicke - Sa 22.10.11 22:28

Siehe Doku:
TWebbrowser.Document implementiert das Interface IPersistStreamInit [http://msdn.microsoft.com/en-us/library/windows/desktop/ms682273.aspx]. Du kannst daher dessen Methode load [http://msdn.microsoft.com/en-us/library/windows/desktop/ms680730.aspx] aufrufen um den Seiteninhalt aus dem Stream aus TIdHttp zu laden. Um den Delphi-Stream als IStream übergeben zu können, kannst du einen TStreamAdapter benutzen.

Was IPersistStreamInit angeht, so kannst du TWebbrowser.Document mit as darauf casten oder den mehr COM-artigen Weg über QueryInterface gehen.

Allerdings sieht die Seite logischerweise nicht wie im Original aus, da alle relativen Referenzen auf Styles, Images, ... in der Seite nicht mehr funktionieren.