Autor |
Beitrag |
mithandril
Hält's aus hier
Beiträge: 5
|
Verfasst: Sa 15.10.05 16:05
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
      
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: Sa 15.10.05 18:35
Navigate brauch eine URL oder eine Datei!
Also vorher den Text in eine File und dann navigate(Dateiname)
grez
Msch
_________________ ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
|
|
mithandril 
Hält's aus hier
Beiträge: 5
|
Verfasst: Sa 15.10.05 18: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
      
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: Sa 15.10.05 18:54
hallo,
DATEI!!
also
Delphi-Quelltext 1: 2:
| Memo.Lines.SaveToFile('Neu.html'); WebBrowser.Navigate('Neu.html'); |
grez
msch
_________________ ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Sa 15.10.05 18:55
ich glaube mich erinnern zu können dass man auch direkt ins .innerhtml reinschreiben kann, oder täusche ich mich da 
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
MSCH
      
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: Sa 15.10.05 19: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
_________________ ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
|
|
mithandril 
Hält's aus hier
Beiträge: 5
|
Verfasst: Sa 15.10.05 19: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
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: Sa 15.10.05 19:40
Hallo,
etwas  einfacher und ohne den Umweg über eine Datei:
Delphi-Quelltext 1:
| WebBrowser1.Navigate('about:' + Memo1.Text); |
_________________ MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
|
|
mithandril 
Hält's aus hier
Beiträge: 5
|
Verfasst: Mo 17.10.05 10: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
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: Mo 17.10.05 15:27
Hallo,
hast Du es getestet
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.
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; |
_________________ MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Mo 17.10.05 18:49
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
Lannes
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: Di 18.10.05 00:19
Hallo,
@retnyg:
Hier jetzt noch Code ohne Memo, Stringlist, Konstante oder Variable
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.
_________________ MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
|
|
raiha
      
Beiträge: 152
|
Verfasst: Mo 20.03.06 11: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
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: Mo 20.03.06 11:22
Hallo,
was ist MHTML 
_________________ MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
|
|
raiha
      
Beiträge: 152
|
Verfasst: Mo 20.03.06 11:37
|
|
Lannes
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: Mo 20.03.06 12: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.
_________________ MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
|
|
raiha
      
Beiträge: 152
|
Verfasst: Mo 20.03.06 12: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
      
Beiträge: 152
|
Verfasst: Mo 20.03.06 12: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
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: Mo 20.03.06 13:25
Hallo,
in welcher Form liegen denn die Daten vor?
Als String, StringList, Recource ...
_________________ MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
|
|
raiha
      
Beiträge: 152
|
Verfasst: Mo 20.03.06 13:37
als String/StringList je nachdem wie ich es brauche ...
|
|