Wie kann ich extrahieren einer Ressource in eine Datei zur Laufzeit?
Will ich verteilen nur ein einziges .exe, aber bei der Spielzeit würde ich mag es zu extrahieren einige eingebettete Bild-Ressourcen an die Benutzer Festplatte.
Verwendung von Delphi TResourceStream. Es ist constructor finden und laden Sie die Ressource in den Speicher, und es SaveToFile-Methode wird die Festplatte schreiben.
Wenn Sie können, verwenden Sie die Ressource-ID anstelle der Namen, es ist ein wenig weniger Speicher. In diesem Fall würden Sie resplace Erstellen mit CreateFromID, und liefern die numerische ID anstatt dem string name.
vielen Dank, Ken, das klingt Super. Btw, Whhat Wert für HInstance ?
Welchen Wert das OS sagt dir, @Leonix. HInstance ist eine Globale variable, die Delphi initialisiert, die für Sie als Ihr Programm startet. Es ist in der SysInit Einheit.
Erstellen Sie eine TResourceStream. Sie müssen die Modul-Instanz-handle (in der Regel SysInit.HInstance für die aktuelle EXE-Datei oder sonst was bekommen Sie von LoadLibrary oder LoadPackage), den Ressourcentyp (wie rt_Bitmap oder rt_RCData), und entweder die Ressource-name oder numerischer ID. Dann rufen Sie den stream SaveToFile Methode.
Verwendung von Delphi TResourceStream. Es ist constructor finden und laden Sie die Ressource in den Speicher, und es SaveToFile-Methode wird die Festplatte schreiben.
Etwas ähnliches wie das funktionieren sollte:
Wenn Sie können, verwenden Sie die Ressource-ID anstelle der Namen, es ist ein wenig weniger Speicher. In diesem Fall würden Sie resplace Erstellen mit CreateFromID, und liefern die numerische ID anstatt dem string name.
HInstance
ist eine Globale variable, die Delphi initialisiert, die für Sie als Ihr Programm startet. Es ist in der SysInit Einheit.Erstellen Sie eine
TResourceStream
. Sie müssen die Modul-Instanz-handle (in der RegelSysInit.HInstance
für die aktuelle EXE-Datei oder sonst was bekommen Sie vonLoadLibrary
oderLoadPackage
), den Ressourcentyp (wiert_Bitmap
oderrt_RCData
), und entweder die Ressource-name oder numerischer ID. Dann rufen Sie den streamSaveToFile
Methode.Und dann speichern der Bitmap auf der Festplatte.
Mag das vielleicht auch nützlich finden, wenn Sie brauchen, um die Arbeit mit der Ressourcen selbst.
Delphidabbler /ResourceFiles