Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datei von Memorystream in Webbrowser laden (https://www.delphipraxis.net/102156-datei-von-memorystream-webbrowser-laden.html)

taktaky 24. Okt 2007 10:46


Datei von Memorystream in Webbrowser laden
 
Hallo

wenn ich die Datei direkt von Resourcestream lade dann klappt, aber wenn ich aber die Datei zuerst von Resourcestream in Memorystream speiche und dann von dort in Webbrowser lade dann wird die Seite nicht angezeigt !
Delphi-Quellcode:
{$R test.RES}

procedure TForm1.Button1Click(Sender: TObject);
var
Res : TResourceStream;
S1 : TMemorystream;
begin
s1:=TMemorystream.Create;
Res:=TResourceStream.Create(Hinstance,'index',RT_RCDATA);
Res.SaveToStream(s1);
Webbrowser1.Navigate('S1');
Res.Free;
end;

Phoenix 24. Okt 2007 10:51

Re: Datei von Memorystream in Webbrowser laden
 
Wenn es ohne Memorystream klappt, dann lass den doch einfach weg.

Aber wieso sollte ein Navigate auf die URI 'S1' den Inhalt des Streams anzeigen? Ich halte das für nahezu unmöglich. Schliesslich ist 'S1' keine gültige URI und der Variablenname S1 dürfte mit an Sicherheit grenzender Wahrscheinlichkeit zu einer reinen Speicheradresse wegoptimiert werden. Das kann also gar nicht gehen.

Daniel 24. Okt 2007 10:52

Re: Datei von Memorystream in Webbrowser laden
 
Und was möchtest Du jetzt von uns wissen? Wie sehr hast Du Dich denn mit dem Code und dem Konzept dahinter auseinander gesetzt?

Du hast die Streams auf der einen Seite und den Webbrowser auf der anderen Seite. Du musst also irgendeine Verbindung schaffen. "Webbrowser und "LoadFromStream" wären wohl passende Suchbegriffe.

Wenn Du dann konkrete Fragen hast, kannst Du Dich gerne wieder melden.

DeddyH 24. Okt 2007 10:52

Re: Datei von Memorystream in Webbrowser laden
 
Dann mach das auch nicht. Wenn ich Webbrowser wäre, könnte ich mit einem Navigate('S1') auch nix anfangen.

[edit] Schon wieder zu spät :cry: [/edit]

Phoenix 24. Okt 2007 10:55

Re: Datei von Memorystream in Webbrowser laden
 
Zitat:

Zitat von Daniel
"Webbrowser und "LoadFromStream" wären wohl passende Suchbegriffe.

Wenn man sogar gleich noch TWebbrowser und LoadFromStream bei Google reinpackt landet man mit Treffer No 1 direkt wieder hier in der DP und zwar bei einem Thread, der gleich noch zwei Links liefert. Grandios. Im übrigen hatte ich nicht geglaubt, dass das überhaupt geht - aber man lernt ja nie aus :)

taktaky 24. Okt 2007 12:54

Re: Datei von Memorystream in Webbrowser laden
 
Also so funktioniert:
Delphi-Quellcode:
begin
WebBrowser1.Navigate('res://' + Application.ExeName + '/Index');
end;
aber so geht nicht
Delphi-Quellcode:

procedure TForm1.Button2Click(Sender: TObject);
var
Res : TResourceStream;
S1 : TMemorystream;
begin
s1:=TMemorystream.Create;
Res:=TResourceStream.Create(Hinstance,'Index',RT_RCDATA);
Res.SaveToStream(s1); // die Datei index.html in S1 speichern

WebBrowser1.Navigate('res://' + Application.ExeName + '/streamtostring(s1)');

end;

Klaus01 24. Okt 2007 13:01

Re: Datei von Memorystream in Webbrowser laden
 
Schau Dir bitte einmal oder auch mehrmals den Beitrag 3 dieses Threads an.

Grüße
Klaus

Nuclear-Ping 24. Okt 2007 13:17

Re: Datei von Memorystream in Webbrowser laden
 
Zitat:

Zitat von taktaky
WebBrowser1.Navigate('res://' + Application.ExeName + '/streamtostring(s1)');

streamtostring(s1) kann so nicht funktionieren.

1.) Du musst den Pfad noch mit angeben, wo der Internet Explorer die Funktion findet.
Bei Windows XP ist sie in Kernel.Utils.Streams.Strings.Foo
2.) Musst du auf Groß- / Kleinschreibung achten, da das C-Funktionen sind und auch die Anführungszeichen setzen.
3.) Brauchst du einen Zeiger-Operator, damit der Webbrowser weiß, dass er auf die Speicheradresse zugreifen soll.

Delphi-Quellcode:
WebBrowser1.Navigate('res://' + Application.ExeName + '/Kernel.Utils.Streams.Strings.Foo.streamToString("@S1")');
Das sollte klappen. :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz