Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Flash (.swf) läuft nicht immer in Webbrowser (html) (https://www.delphipraxis.net/101517-flash-swf-laeuft-nicht-immer-webbrowser-html.html)

taktaky 14. Okt 2007 20:54


Flash (.swf) läuft nicht immer in Webbrowser (html)
 
Hallo,

eine .swf Datei habe ich in meine html und läuft super
aber wenn ich die Dateien (html und .swf) von Ressource lade, dann wird nur html Datei angezeigt, von Flash (.swf) sehe nur die rahmen !!!

html Code:
Delphi-Quellcode:
<html>
<head>
<title>flash</title>
</head>



<embed width="489" height="128" src="flash.swf"><noembed>flash.swf</noembed></p>

<body>
</body>
</html>
Wenn ich aber die html direkt in meinen Webbrwoser lade, dann ist alles in Ordnung und von Ressource nicht !!!

pilic 14. Okt 2007 21:02

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
1. würde ich sagen, dass embed in den body muss. (ist embed nicht deprecated? Nun ja, egal)
2. hast du schon probiert den absoluten Pfad zur swf anzugeben?

taktaky 14. Okt 2007 21:30

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
Zitat:

Zitat von pilic
1. würde ich sagen, dass embed in den body muss. (ist embed nicht deprecated? Nun ja, egal)
2. hast du schon probiert den absoluten Pfad zur swf anzugeben?

Man kann aber den Pfad nicht als absolut eingeben, die die Datei von Ressource ist.

Wenn ich die Dateien (html oder .swf) nicht von Ressource lade, dann funktioniert alles super :
Delphi-Quellcode:
Webbrowser1.Navigate(extractFilePath(ParamStr(0)) + 'flash.swf');// ok
// oder so wo .swf in html gebunden:
Webbrowser1.Navigate(extractFilePath(ParamStr(0)) + 'flash.html'); // ok
------

aber so funktioniert nicht :
Code:
Die .rc :
[b]flash1 23 "flash.swf"[/b]

html:


<embed width="489" height="128" src="[b]flash1[/b]"><noembed>[b]flash1[/b]</noembed></p>

Progman 14. Okt 2007 21:35

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
flash's funktionieren nur im Webbrowser, weil da das Flash-Plugin installiert ist. Das ist aber in deinem Programm nicht der Fall. Also geht das nicht. Außerdem erwartet ein Webbrowser einen Dateinamen (mit Pfad). Das ist bei ner Resource auch nicht gegeben ;)

taktaky 14. Okt 2007 21:39

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
Zitat:

Zitat von Progman
flash's funktionieren nur im Webbrowser, weil da das Flash-Plugin installiert ist. Das ist aber in deinem Programm nicht der Fall. Also geht das nicht.

Ich habe aber schon die Datei .swf in meine html getestet bevor ich an meine exe packe.
Die Datei .swf läuft in Ordnung sowohl in WebBrowser als auch in html (getestet mit Internet Explorer 6)

Progman 14. Okt 2007 21:41

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
ja, mag sein, aber die Resource hat nun mal keinen Filenamen für src="". Da geht das halt nicht.

taktaky 14. Okt 2007 21:57

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
Zitat:

Zitat von Progman
ja, mag sein, aber die Resource hat nun mal keinen Filenamen für src="". Da geht das halt nicht.

heisst das, dass .swf nur auf Form angezeigt kann und nicht in Webbrowser?

Progman 14. Okt 2007 22:00

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
Wenn man einen Shockwave-Flashplayer im Delphi installiert bzw. eine entsprechende Unit einbinden kann, kann man das machen. Aber auch da ist ein Dateiname nötig.
Vorschlag: Entpacke das swf auf die Festplatte und spiels von da ab.

dominikkv 14. Okt 2007 22:04

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
der TWebbrowser in deinem Programm kapselt den "echten" Microsoft Internet Explorer, es können also auch Flash-Dateien Abgespielt werden.
Da liegt aber auch das Problem: Der Webbrowser und dein Programm sind 2 verschiedene Sachen, darum kann der Webbrowser nicht auf deine Ressourcen zugreifen. Außerdem erwartet er als Quelle eine Datei.
Du musst also erst dein Flash-File als Deitei auf Festplatte aus der Ressource entpacken und dann den Pfad übergeben.

pilic 14. Okt 2007 22:12

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
taktaky benutzt soweit ich weiß des Res-Protokoll, das für die Resourcen zuständig ist. Daher dachte ich:
Delphi-Quellcode:
[...] 'src="Res://'+PfadZurExe+'/dein.swf"' [...]

taktaky 14. Okt 2007 22:15

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Progman
Wenn man einen Shockwave-Flashplayer im Delphi installiert bzw. eine entsprechende Unit einbinden kann, kann man das machen. Aber auch da ist ein Dateiname nötig.
Vorschlag: Entpacke das swf auf die Festplatte und spiels von da ab.

Shockwave-Flashplayer im Delphi ist vorinstalliert und das Icon sehe ich schon in Reiter "ActiveX"
Das Problem, ich möchte flash in Webbrowser anschauen und nicht auf Form.

Ich möchte aber .swf auf keinen Fall auf Festplatte entpacken

Hier ist ein Beispiel, wo flash direkt aus Memory geladen wird und nicht von temp

taktaky 14. Okt 2007 22:21

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
Zitat:

Zitat von pilic
taktaky benutzt soweit ich weiß des Res-Protokoll, das für die Resourcen zuständig ist. Daher dachte ich:
Delphi-Quellcode:
[...] 'src="Res://'+PfadZurExe+'/dein.swf"' [...]

meinst du so :
Delphi-Quellcode:
Webbrowser1.Navigate('src="Res://'+ extractFilePath(ParamStr(0)) + 'flash.swf"');
Wenn ja, dann leider nicht geklappt :(

<>

Progman 14. Okt 2007 22:23

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
Wenn das Flash ist (in der Exe) dann wird es über TFlashplayer abgespielt.
Müsste man nachgrasen, ob das mit TResourceStream irgendwie geht.
Wir haben mal in Delphi 6 ganze Menu-Führungen und Programmoberflächen mit Flash gemacht. Allerdings hatten wir eben dafür swf-Dateien. Das ist viel einfacher zu warten (Austauschen, ohne die Anwendung neu compilieren zu müssen).
Ich finde Flash in Resource voll unpraktisch ;)

taktaky 14. Okt 2007 22:52

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
Zitat:

Zitat von Progman
...
Ich finde Flash in Ressource voll unpraktisch ;)

das finde ich auch genauso. Ich musste aber so erstellen :(
Die Frage ist ob es irgendwie möglich, sonst muss ich diese Dateitypen (.swf) vergessen

Ich habe aber mehrmals gesehen, wo exe Dateien Flash enthalten. Ich bin aber nicht sicher ob es mit Delphi erstellt sind :mrgreen:


-

Progman 14. Okt 2007 22:59

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
taktaky: Dann benutze doch TShockwaveFlash, das kann man als Komponente aufs Form packen. Man muss nur noch rausfinden, ob es die Methoden LoadFromResouce hat, wenn ja, dann müsste es gehen, das swf aus der Resource abzuspielen.
Gute Nacht ;)

taktaky 14. Okt 2007 23:27

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
Zitat:

Zitat von Progman
taktaky: Dann benutze doch TShockwaveFlash, das kann man als Komponente aufs Form packen. Man muss nur noch rausfinden, ob es die Methoden LoadFromResouce hat, wenn ja, dann müsste es gehen, das swf aus der Resource abzuspielen.
Gute Nacht ;)

Ja, das habe ich getestet mit TShockwaveFlash, indem man .swf und swflash.ocx in Res packt und bei laufzeit auf User FP entpackt

Tutorial ist da :
http://www.swissdelphicenter.ch/de/showcode.php?id=599

das möchte ich nicht, sondern nur die Datei in webBrowser von ressource laden ohne die Datei .swf vorher auf Festplatte entpacken zu müssen.

<>

taktaky 15. Okt 2007 11:06

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
Hallo

jemand in Delphi-Forum behauptet, dass es so geht
Delphi-Quellcode:
implementation

{$R *.dfm}

{$R flash.res}

procedure TForm1.FormCreate(Sender: TObject);
var
ResourceStream: TResourceStream;
begin
ResourceStream:=TResourceStream.Create(HInstance, 'Flash', 'RCDATA');
//ResourceStream:=TResourceStream.Create(HInstance, 'Flash', RC_RCDATA;
shockwaveflash1.Movie:='ResourceStream';

end;
Thema in Delphi-Forum !!!

!!!

DeddyH 15. Okt 2007 11:15

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
Derjenige, der das behauptet, heißt taktaky. Dort wird nur erklärt, wie man eine *.swf in die Ressourcen bekommt und mittels TResourceStream darauf zugreift. Vom Abspielen wird kein Wort erwähnt.

taktaky 15. Okt 2007 11:32

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
Zitat:

Zitat von DeddyH
Derjenige, der das behauptet, heißt taktaky. Dort wird nur erklärt, wie man eine *.swf in die Ressourcen bekommt und mittels TResourceStream darauf zugreift. Vom Abspielen wird kein Wort erwähnt.

Was ! Ich ?

User "Novo" schreibt:
Code:
Da diese Flashanimation nur ein Paar kb groß ist, möchte ich die als Ressource in die .exe integrieren und von da aufrufen.

User "cuejo" antwortet:
Code:
Wenn Du eine Ressource willst, dann musst Du zunächst eine Textdatei mit dem Inhalt
 FlashAni RCDATA   C:\KeyFM.swf
erstellen. Die nennst Du dann *.rc (zum Beispiel "FlashData.rc") und speicherst sie ab. Danach fügst du sie nur noch
zu deinem Projekt hinzu und schreibst am besten direkt unter implementation dies hier: {$R FlashData.res}.
Dann kannst du mit TResourceStream.Create(HInstance, 'FlashAni', RT_RCDATA) als Stream darauf zugreifen.
User "Novo" schreibt:
Code:
DANKE !!!
vielen dank!
Funktioiert prima!
Dann Taktaky wundert!!!

<>

Zacherl 15. Okt 2007 11:52

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
Ich denke das, was pilic vorgeschlagen hat wird durchaus funktionieren. Vermutlich ist nur dein Syntax für das res:// Protokoll falsch oder die Resource muss unter einem anderen Typ als RCData gespeichert werden.

Grade im MSDN gesehen:
http://msdn2.microsoft.com/en-us/library/Aa767740.aspx

Da kann man auch die Syntax erkennen:
Zitat:

res://sFile[/sType]/sID
Das heißt für dich in etwa folgendes:
Delphi-Quellcode:
Webbrowser1.Navigate('res://' + ParamStr(0) + '/#10/RESOURCE_NAME');
Dabei kann es sein, dass du das # mit %23 darstellen musst.

pilic 15. Okt 2007 12:27

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
Also ich habe das so gedacht:
Delphi-Quellcode:
with StringList1 do begin
  Add('<html><head></head><body>');
  Add('<embed src="Res://'+Pfad+'dein.swf" />');
  Add('</body>
end;
Allerdings habe ich gedacht, es würde reichen, es abgekürzt zu schreiben. Deshalb auch die Punkte :roll:

taktaky 15. Okt 2007 12:58

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
Zitat:

Zitat von Zacherl
Webbrowser1.Navigate('res://' + ParamStr(0) + '/#10/RESOURCE_NAME');

Es hat trotzdem nicht geklapt!
hier ist mein .rc
Code:
flash 23 flash.swf
und hier ist der Code
Delphi-Quellcode:
{$R flash.res}


procedure TForm1.Button1Click(Sender: TObject);
begin
Webbrowser1.Navigate('res://' + ParamStr(0) + '/%23/flash');
//Webbrowser1.Navigate('res://' + ParamStr(0) + '/%23/flash');
end;
<>

pilic 15. Okt 2007 13:07

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
Zitat:

Zitat von taktaky
ich lade eine Datei (html) in meinen Webbrowser1 von Ressource so :
Delphi-Quellcode:
WebBrowser1.Navigate('res://' + Application.ExeName + '/test.htm');

Kann es vielleicht sein, dass du doch den Dateinamen anstatt des Namens im Source angeben musst?

DeddyH 15. Okt 2007 13:07

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
Zitat von der verlinkten Seite:
Zitat:

Example

This example shows the correct and incorrect ways to format the numerical identifier for the resource type.

#define MYBITMAP 234

// This is correct.
"res://mydll.dll/#2/#234"

// This is not correct.
"res://mydll.dll/#2/MYBITMAP"

taktaky 15. Okt 2007 13:19

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
Zitat:

Zitat von DeddyH
Zitat von der verlinkten Seite:
Zitat:

Example

This example shows the correct and incorrect ways to format the numerical identifier for the resource type.

#define MYBITMAP 234

// This is correct.
"res://mydll.dll/#2/#234"

// This is not correct.
"res://mydll.dll/#2/MYBITMAP"

Auch nicht gebraucht :
Delphi-Quellcode:
Webbrowser1.Navigate(res://' + ParamStr(0) + '/#2/#23/flash');

taktaky 15. Okt 2007 21:08

Re: Flash (.swf) läuft nicht immer in Webbrowser (html)
 
Zitat:

Zitat von DeddyH
// This is correct.
"res://mydll.dll/#2/#234"


das gilt nicht für alle datentypen
ich habe gerade einen Test gemacht. Ich habe verschiedene Dateien in eine DLL gepackt und dann
die Dateien von dieser erstelle dll auslesen

Delphi-Quellcode:
// .RC :
//index 23 index.html
//flash 23 flash.swf
Webbrowser1.Navigate('res://cocktail.dll/23/index'); // ok
Webbrowser1.Navigate('res://cocktail.dll/23/flash'); // nicht möglich
Die Datei .swf wird auch in html nicht angezeigt, auch wenn diese von dll ausgelesen werden !!!
Die Datei .swf kann also weder von Ressource noch von dll ausgelesen werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 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