Je veux distribuer uniquement une seule .exe, cependant, à l'exécution, j'aimerais qu'il extrait des ressources d'image intégrées sur le lecteur de disque dur des utilisateurs. P>
Puis-je, et si oui, comment? p>
4 Réponses :
Utilisez TresourceStream de Delphi. Son constructeur trouvera et chargera la ressource en mémoire et sa méthode de sauvetage fera l'écriture du disque.
Quelque chose de similaire à cela devrait fonctionner: P>
var ResStream: TResourceStream; begin ResStream := TResourceStream.Create(HInstance, 'YOURRESOURCENAME', RT_RCDATA); try ResStream.Position := 0; ResStream.SaveToFile('C:\YourDir\YourFileName.jpg'); finally ResStream.Free; end; end;
Quelle que soit la valeur que le système d'exploitation vous dit, @LEonix. Hinstance CODE> est une variable globale que Delphi s'initialise pour vous car votre programme démarre. C'est dans l'unité sysinit i>.
Créer un TresourceStream code>
. Vous aurez besoin de la poignée d'instance de module (généralement sysinit.hinstance code> pour le fichier EXE actuel, ou bien ce que vous obtenez de
LoadLibrary code> ou
LoadPackage code>) , le type de ressource (tel que
rt_bitmap code> ou
rt_rcdata code>) et soit le nom de la ressource ou le numéro numérique. Appelez ensuite le flux de
Savetofile code>
Méthode. P>
try if not Assigned(Bitmap) then Bitmap := TBitmap.Create(); Bitmap.LoadFromResourceName(HInstance,SRC); except on E:Exception do ShowMessage(e.Message); end; And then save the Bitmap to disk.
Peut-être que cela pourrait être utile aussi si vous devez travailler avec les ressources elles-mêmes. Delfidabbler / ressources P>