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>