Entwickler-Ecke
Internet / Netzwerk - twebbrowser mit tstring füllen?
mithandril - Sa 15.10.05 15:05
Titel: twebbrowser mit tstring füllen?
hiho ...
ich versuche den aus einer idmessage geladenen seite im twebbrowser darzustellen ... nur wenn ich das mit .navigate mache sagt der mir er kann keine tstrings in einem string darstellen ... kann jmd helfe?
MSCH - Sa 15.10.05 17:35
Navigate brauch eine URL oder eine Datei!
Also vorher den Text in eine File und dann navigate(Dateiname)
grez
Msch
mithandril - Sa 15.10.05 17:48
mh ich habs jetzt erst in ein memo geschrieben und dann versucht das mit navigate auszulesen ... nur da sagt der immer seite nich gefunden ... das mit dem file versuch ich jetzt mal ...
MSCH - Sa 15.10.05 17:54
hallo,
DATEI!!
also
Delphi-Quelltext
1: 2:
| Memo.Lines.SaveToFile('Neu.html'); WebBrowser.Navigate('Neu.html'); |
grez
msch
retnyg - Sa 15.10.05 17:55
ich glaube mich erinnern zu können dass man auch direkt ins .innerhtml reinschreiben kann, oder täusche ich mich da :gruebel:
MSCH - Sa 15.10.05 18:04
das geht via DOM
also TWebBrowser.Document...
aber siehe OH:
zitat aus OH/D2005:
Mit Document können Sie auf eine IDispatch-Schnittstelle zugreifen, um unter Verwendung des COM-Objektmodells den Inhalt des HTML-Dokuments zu bearbeiten. Wenn kein Dokument aktiv ist, gibt die Eigenschaft Document den Wert nil zurück. Sie müssen dann erst mit der Methode Navigate oder Navigate2 ein Dokument laden, um die Bearbeitung durchführen zu können.
Weitere Informationen über diese Schnittstelle finden Sie im Abschnitt über Dokumentobjekte in der Microsoft-Referenz zu Dynamic HTML.
grez
MSCH
mithandril - Sa 15.10.05 18:05
MSCH hat folgendes geschrieben: |
hallo,
DATEI!!
also
|
nich gleich pissig werden ... ich sagt so habe ich es eben versucht und jetzt mach ich es mit einer datei .... trotzdem danke es funktioniert so ....
Lannes - Sa 15.10.05 18:40
Hallo,
etwas :mrgreen: einfacher und ohne den Umweg über eine Datei: :wink:
Delphi-Quelltext
1:
| WebBrowser1.Navigate('about:' + Memo1.Text); |
mithandril - Mo 17.10.05 09:39
das hatte ich ja so auch am anfang .. das prob dabei is der navigae nur nen string nimmt der body von idmessage aber tstring is .... habs jetzt mit der xtra html datei gemacht ....
Lannes - Mo 17.10.05 14:27
Hallo,
hast Du es getestet :gruebel:
mithandril hat folgendes geschrieben: |
| ... ich habs jetzt erst in ein memo geschrieben und dann versucht das mit navigate auszulesen ... |
Lannes hat folgendes geschrieben: |
Delphi-Quelltext 1:
| WebBrowser1.Navigate('about:' + Memo1.Text); | |
Die Text-Eigenschaft des Memo ist ein
String also geht das,
wahrscheinlich hast Du
WebBrowser1.Navigate('about:'+Memo1.Lines); genutzt
und Lines ist vom Typ
TStrings.:wink:
Hier jetzt noch Code ohne eine Memo verwenden zu müssen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.ButtonLoadClick(Sender: TObject); var sL : TStringList; begin sL := TstringList.Create; try sL.Add('<HTML><BODY><H1>Testseite</H1>'); sL.Add('Hallo</HTML></BODY>'); WebBrowser1.Navigate('about:'+sL.Text); finally sL.Free; end; end; |
retnyg - Mo 17.10.05 17:49
Lannes hat folgendes geschrieben: |
Hier jetzt noch Code ohne eine Memo verwenden zu müssen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.ButtonLoadClick(Sender: TObject); var sL : TStringList; begin sL := TstringList.Create; try sL.Add('<HTML><BODY><H1>Testseite</H1>'); sL.Add('Hallo</HTML></BODY>'); WebBrowser1.Navigate('about:'+sL.Text); finally sL.Free; end; end; | |
Hier jetzt noch Code ohne Memo oder Stringlist :roll: verwenden zu müssen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.ButtonLoadClick(Sender: TObject); const HTML = '<HTML><BODY><H1>Testseite</H1>'#13#10'Hallo</HTML></BODY>'; begin WebBrowser1.Navigate('about:'+HTML); end; |
Lannes - Mo 17.10.05 23:19
Hallo,
@retnyg:
Hier jetzt noch Code ohne Memo, Stringlist, Konstante oder Variable :wink:
Delphi-Quelltext
1: 2: 3:
| WebBrowser1.Navigate('about:'+'<HTML><BODY>' +'<H1>Testseite</H1>' +'Hallo</HTML></BODY>'); |
Nun hab ich aber festgestellt,
das bei dieser Art der Übergabe nur 408(???) Zeichen im String möglich sind. :?
Damit größere HTML-Codes zugewiesen werden können muss mit einem Stream gearbeitet werden:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure LoadHTML(WebBrowser: TWebBrowser;sHTML: TStrings); var ms: TMemoryStream; begin WebBrowser.Navigate('about:blank'); while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do Application.ProcessMessages;
if Assigned(WebBrowser.Document) then begin ms := TMemoryStream.Create; try sHTML.SaveToStream(ms); ms.Seek(0, 0); (WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms)); finally ms.Free; end; end; end; |
Aufruf:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.ButtonClick(Sender: TObject); begin LoadHTML(WebBrowser,Memo.Lines); end; |
Hat man einen String der größer 408 Zeichen ist, dann diesen erst in eine Stringliste schreiben
und anschließend mit LoadHTML in den Webbrowser laden.
raiha - Mo 20.03.06 10:03
Hi,
versuche auch über LoadHTML HTML-Quelltext in den Browser zu bekommen. Leider funktioniert das nicht mit MHTML. Kann ich den Browser dazu überreden, dass er mir die Seiten richtig darstellt?
Danke Rainer
Lannes - Mo 20.03.06 10:22
Hallo,
was ist MHTML :gruebel:
Lannes - Mo 20.03.06 11:05
Hallo,
mit LoadHTML kannst Du Quelltext, der als TStrings vorliegt, direkt in den Webbrowser laden.
Eine *.mht-Datei(MHTML) kann man wie eine *.html-Datei mit
Delphi-Quelltext
1:
| WebBrowser.Navigate('c:\temp\EineMHTML.mht'); |
in den Browser laden.
raiha - Mo 20.03.06 11:10
Ja stimmt schon ... aber das meine ich nicht.
Ich will MHTML-Quelltext (richtig interpretiert) im Browser anzeigen, ohne erst das MHTML-File auf die Platte schreiben zu müssen. (mit Festplattenumweg geht das auch ganz toll aber das will ich ja umgehen).
Scheinbar braucht der Browser die Dateiendung *.MHTML und den Text richtig zu interpretieren. Wie schaffe ich das nun aber ohne erst die Datei zu erzeugen?
Danke Rainer
raiha - Mo 20.03.06 11:21
Gibt es vielleicht eine Möglichkeit das MHTML-File (mit Dateiendung) nur im Speicher zu erzeugen und dieses den Browser laden zu lassen?
Lannes - Mo 20.03.06 12:25
Hallo,
in welcher Form liegen denn die Daten vor?
Als String, StringList, Recource ...
raiha - Mo 20.03.06 12:37
als String/StringList je nachdem wie ich es brauche ...
Lannes - Mo 20.03.06 13:05
Hallo,
hab gerade mal ein paar Versuche unternommen aus String, StringList oder einer Recource(mit res://-Protokoll) MHTML-Daten in den WebBrowser zu laden.
Das Ergebnis ist bei allen gleich negativ :?
Erstellst(codierst) du die Daten selbst?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!