JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 2010
-
11 janv. 2006 à 18:59
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 2013
-
17 janv. 2006 à 17:42
Bonjoir !
A mon tour d'avoir un problème sans solution :
J'ai une form1 avec un composant TImage posé. (super !)
J'ai 20mo d'images à charger dedans. DONC si j'inclus mes 20mo de BMP en .res, mon exe fera 20.5mo, vraiment pas top.
J'ai pensé à inclure donc mes images dans un DLL (de 20mo donc :/) pour pouvoir faire un exe de 500k. je pourrais meme mettre à jour mes images sans toucher à l'exe.
Ma question est donc : comment mettre ces images dans ma dll pour ensuite les apeller dans mon TImage sur ma form1 de mon projet ?
ps : D'autres solutions existent, je suis preneur MAIS je veux tout de meme reussir à mettre des images dans une dll pour les charger par la suite.
ps2 : non, je ne peux pas utiliser des JPG, juste des BMP bien lourdes ^^
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 11 janv. 2006 à 23:13
Il n'est pas plus difficile d'inclure une ressource dans une DLL que dans un exe puisque la directive est la même : $r. On ne fait même plus attention à ce que l'IDE fait tout seul en ajoutant {$R *.dfm} au début des sections implémentation ou dans une DLL comme ceci :
library Project2;
uses
SysUtils,
Classes;
{$R *.res}
begin
end..
Il suffit d'en faire autant en ajoutant, de la même manière :
library Project2;
uses
SysUtils,
Classes;
{$R *.res}
{$R MaRessource.res}
begin
end.
Pour te faciliter la tâche, un éditeur de ressources comme RES_HIA peut faire gagner beaucoup de temps et éviter les erreurs de frappe, surtout si tu as beaucoup de fichiers à inclure.
<hr color="#008000">Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Abadianet
Messages postés40Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention19 juin 20061 11 janv. 2006 à 20:19
Bonsoir JulioDelphi,
Pourquoi ne pas mettre tes images dans une base de données
J'utilise Absolute Database (http://www.componentace.com). Tu as une version Free pour une utilisation perso et tes images sont compressées dans la base (d'où un gain de place en plus !)
Au final tu n’as que ton exe et le seul fichier (*.ABS) pour ta base de données (pas de DLL ou autres fichier à ajouter)
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 11 janv. 2006 à 20:34
Oui pourquoi pas, je DL ça et je test.
J'ai zippé mes images pour le moment dans un zip renommé en .dll (houuu l'affreux !!!) je ne gagne meme pas 1mo :/
Bon, a part cette solution ^^ je souhaite de toute façon savoir comment mettre des images dans une dll pour lex charger dans mon TImage sur ma form =)
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 11 janv. 2006 à 21:14
JulioDelphi is back !
En clair, tu veux créer et utiliser une DLL de resources.
Pour cela, je te conseille de (re)visiter le site de Delphicool sur l'utilisation des ressources.
Note bien que le paramètre HInstance utilisé peut être celui renvoyé par la fonction LoadLibrary.
<hr color="#008000">Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 11 janv. 2006 à 21:23
J'ai usé cette page et mon clavier dessus par la même occasion :( d'autres pages parlant de DLL en ressources aussi.
Je sais mettre des images dans un .res, aller les chercher etc, mais pas dans une DLL.
est-ce si différent ?
(en fait ce sont des .GIF que je veux utiliser mais bon, là n'est pas le soucis du format d'image.)
C'est un problème qui date en fait pour moi, mais ma pause Delphi n'a pas amélioré la chose ^^
Bon, je vais prendre cette page et la rererelire (je n'ai pas encore recup le net chez moi :s)
Dès que je trouve, je post ici. si quelqu'un a encore plus de details, alors n'hesitez pas je suis preneur =^)
ps@delphiprog : durdur de s'y remettre, mais motivé comme toujours :p
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 15 janv. 2006 à 21:58
Comment pourrait-on te répondre sans avoir connaissance des autres unités ou du code inclus par ailleurs dans ta DLL ?
Indications :
Une DLL standard (avec SysUtils et Classes) fait 89088 octets.
Une DLL Standard n'incluant aucune autre unité fait : 15872 octets.
Pour une DLL n'incluant que des ressources, tu dois pouvoir te passer des services de Classes et SyUtils à mon avis.
<hr color="#008000">Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 16 janv. 2006 à 18:00
Merci Delphiprog
Je vais essayer sans Classes et SyUtils
Deja j avais pas fait attention que je mettais autres chose que mon fichier .res ds la dll ... enfin il y en avait 2 ...
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 17 janv. 2006 à 17:42
Disons que la question de Nicolas___ était très complémentaire à la tienne.
Néanmoins, je valide ta réponse, moi
<hr color="#008000">Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.