Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TFilestream - ist sowas möglich? (https://www.delphipraxis.net/101099-tfilestream-ist-sowas-moeglich.html)

suni 8. Okt 2007 13:49


TFilestream - ist sowas möglich?
 
Hi DP,ler

ich habe im netz einen code gefunden mit dem man in einem Delphi projekt eine resource mit einbindet und diese via TFilestream im eigentlichen Projekt mit dem TMediaPlayer abspielt (mp3). Das ganze Jedoch ohne die resource irgendwo auf der festplatte zu speichern via stream eben.
Ist dies auch mit einer exe datei möglich? also das meine resource statt eder mp3 eine exe enthält und diese via stream wiedergegeben bzw von dem programm geöffnet wird?
Wäre für vieles nützlich z.b. wenn man ein Grafisches Interface für ein Komamndozeilen programm schreiben möchte.

LG
Suni


Folgenden Code habe ich um meine sound resource via stream abzuspielen
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
//begin
 // if OpenDialog1.Execute then
  var
 rStream: TResourceStream;
 fStream: TFileStream;
 fname: string;
 begin
 {this part extracts the mp3 from exe}
 fname := ExtractFileDir(Paramstr(0))+'test.mp3';
 rStream := TResourceStream.Create(hInstance, 'test', RT_RCDATA) ;
 try
  fStream := TFileStream.Create(fname, fmCreate) ;
  try
   fStream.CopyFrom(rStream, 0) ;
  finally
   fStream.Free;
  end;
 finally
  rStream.Free;
 end;
 

 {this part plays the mp3}
 MediaPlayer1.Close;
 MediaPlayer1.FileName:=fname;
 MediaPlayer1.Open;
 MediaPlayer1.Play;
[edit=sakura] [code]->[delphi], liest sich einfach schöner ;) Mfg, sakura[/edit]

Luckie 8. Okt 2007 13:53

Re: TFilestream - ist sowas möglich?
 
Du willst eine Exe als Ressource in deine eigentliche Exe packen und dann die Exe aus dem Speicher heraus ausführen? Ja das geht, aber es ist nicht einfach undn ur unter NT und höher, wenn ich mich nicht irre. Quellcode dazu gibt es hier: http://www.michael-puff.de/Developer.../Importe/Nico/ -> inmemexe.zip

marabu 8. Okt 2007 18:09

Re: TFilestream - ist sowas möglich?
 
Hallo Suni,

Zitat:

Zitat von suni
... Das ganze Jedoch ohne die resource irgendwo auf der festplatte zu speichern via stream eben.

tut mir leid dich enttäuschen zu müssen, aber dein Fundstück speichert die Resource per FileStream im Dateisystem - sonst würde auch der folgende Code-Ausschnitt nicht funktionieren:

Delphi-Quellcode:
MediaPlayer1.FileName := fname;
MediaPlayer1.Open;
MediaPlayer1.Play;
Grüße vom marabu


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