Autor Beitrag
mithandril
Hält's aus hier
Beiträge: 5



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Sa 15.10.05 18:54 
hallo,
DATEI!!
also
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: 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 :gruebel:

_________________
es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Sa 15.10.05 19:05 
user profile iconMSCH 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Sa 15.10.05 19:40 
Hallo,

etwas :mrgreen: einfacher und ohne den Umweg über eine Datei: :wink:
ausblenden Delphi-Quelltext
1:
  WebBrowser1.Navigate('about:' + Memo1.Text);					

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
mithandril Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Mo 17.10.05 15:27 
Hallo,

hast Du es getestet :gruebel:
user profile iconmithandril hat folgendes geschrieben:
... ich habs jetzt erst in ein memo geschrieben und dann versucht das mit navigate auszulesen ...

user profile iconLannes hat folgendes geschrieben:

ausblenden 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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Mo 17.10.05 18:49 
user profile iconLannes hat folgendes geschrieben:

Hier jetzt noch Code ohne eine Memo verwenden zu müssen:
ausblenden 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:
ausblenden 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>';
// oder ne ne normale stringvariable o.0
begin
    WebBrowser1.Navigate('about:'+HTML);
end;

_________________
es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Di 18.10.05 00:19 
Hallo,

@retnyg:
Hier jetzt noch Code ohne Memo, Stringlist, Konstante oder Variable :wink:
ausblenden 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:
ausblenden 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(00);
        (WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));
      finally
        ms.Free;
      end;
  end;
end;

Aufruf:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.ButtonClick(Sender: TObject);
begin
  LoadHTML(WebBrowser,Memo.Lines);
  //oder
  //LoadHTML(WebBrowser,MyStringList);
  //LoadHTML(WebBrowser,ListBox.Items);
  //LoadHTML(WebBrowser,RichEdit.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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 152



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Mo 20.03.06 11:22 
Hallo,

was ist MHTML :gruebel:

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
raiha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 152



BeitragVerfasst: Mo 20.03.06 11:37 
da stehts ganz genau ;-)

de.wikipedia.org/wiki/MHTML
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: 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
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 152



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 152



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 152



BeitragVerfasst: Mo 20.03.06 13:37 
als String/StringList je nachdem wie ich es brauche ...