![]() |
JPG ohne Resource einfügen
Hey Leute,
ist es möglich, eine jpg-Datei ohne Resource einzufügen? Ich will ein Bild als Image einfügen, aber sobald ich die Resource lösche oder verschiebe, hab ich ein Problem. Ich will nur die ausführbare exe haben, ohne Datei drumherum... Geht das? |
AW: JPG ohne Resource einfügen
Moin...:P
Das ist der Zweck einer Ressource das man Bilder oder Text "eincomplieren" kann. :gruebel: Wie stellst du das an an es nicht funktioniert? :P Oder ich habe dich nicht verstanden... :gruebel: |
AW: JPG ohne Resource einfügen
Wann hast du beim Entfernen der Ressourcendatei (.res) ein Problem? Beim Kompilieren oder beim Ausführen der Anwendung?
Beim Kompilieren wäre normal, denn da wird ja die Exe erst erstellt. Wenn beim Ausführen, hast du etwas beim Laden der Ressource falsch gemacht. Dazu lässt sich ohne Quelltext aber nichts sagen. |
AW: JPG ohne Resource einfügen
Ich denke mal Danny92 meint mit Ressource die JPG-Datei und lädt diese direkt anstatt das Bild erstmal in eine Ressourcedatei (*.rc bzw. *.res) einzubinden. Das würde erklären das das Programm die Datei nicht mehr finden kann sobald sie verschoben oder gelöscht wird.
|
AW: JPG ohne Resource einfügen
Das Problem entsteht beim Ausführen der exe.
Das Kompilieren geht alles einwandfrei, und solange die Resource im angegebenen Pfad existiert, auch beim Ausführen. Lösche ich die Resource jedoch, lässt sich die exe ohne Fehlermeldung nicht mehr ausführen: "Die angeforderte Datei wurde nicht gefunden. Stellen Sie sicher, dass Pfad- und Dateiname richtig sind." |
AW: JPG ohne Resource einfügen
Moin...:P
Zitat:
Frage: Was bezeichnest du als Ressource? Das Bild im Dateisystem? |
AW: JPG ohne Resource einfügen
|
AW: JPG ohne Resource einfügen
Code:
procedure TForm1.SpieleMusikAb(FileName: string);
var rStream: TResourceStream; fStream: TMemoryStream; fname: string; begin fname := ExtractFileDir(Paramstr(0))+'\sound\'+FileName+'.mp3'; rStream := TResourceStream.Create(hInstance, FileName, RT_RCDATA) ; try fStream := TMemoryStream.Create; try fStream.CopyFrom(rStream, 0) ; finally fStream.Free; end; finally rStream.Free; end; MediaPlayer1.Close; MediaPlayer1.FileName:=fname; MediaPlayer1.Open; MediaPlayer1.Play; end;
Code:
Hier nehme ich beispielsweise statt eines Bildes eine mp3-Datei in einer Resource.
implementation
{$R *.dfm} {$R AboutDelphi.res} Kompilieren und ausführen funktioniert wie gesagt tadellos, solange die res-Datei davor nicht gelöscht wird. Ich möchte die exe lediglich ohne res Datei ausführen können. Sonst ging das eigentlich auch immer |
AW: JPG ohne Resource einfügen
Also fassen wir mal zusammen was du machst:
Lösungen:
|
AW: JPG ohne Resource einfügen
Deinen Code kann man auch gleich so reduzieren:
Delphi-Quellcode:
Da ist nichts mit Resource !
procedure TForm1.SpieleMusikAb(FileName: string);
var fname: string; begin fname := ExtractFileDir(Paramstr(0))+'\sound\'+FileName+'.mp3'; // ggf if Fileexists(fname) then begin MediaPlayer1.Close; MediaPlayer1.FileName:=fname; MediaPlayer1.Open; MediaPlayer1.Play; end; Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz