IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API, COM et SDKs Delphi Discussion :

Intégrer jpg et string dans dll


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Phyto-aromathérapeute
    Inscrit en
    Juillet 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Phyto-aromathérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 83
    Points : 46
    Points
    46
    Par défaut Intégrer jpg et string dans dll
    Bonjour,
    J'essaie de travailler avec RadStudio 10.4/11.2 sous Windows 10/11, BDD Sqlite (partagé entre mon cabinet de soins et mon domicile où je développe). Mon applicatif est en Delphi et je souhaiterai l'égayer avec des 'images'.

    Je souhaite centraliser les images 'jpg' et les messages de mon applicatif dans un fichier dynamique (qui ne charge que ce dont il a besoin à un instant T), j'ai cru comprendre que l'on pouvait le faire avec une DLL.

    L'expert radstudio a eu l'extrême obligeance de bien vouloir créer le squelette de la DLL mais comment faire :
    1. pour y inscrire les images 'jpg' (environ une trentaine dont les courantes plus quelques unes enceinte, allaitante, cancer, contrôle thérapeutique, toxique, irritant...),
    2. les messages divers et variés...

    Tout ce que j'ai trouvé est en C ou en C++, bien que 'polyglotte plusieurs fois' (mdr) j'avoue ne pas pratiquer ces langages.

    Pour l'accès, j'ai cru comprendre qu'il fallait indiquer la référence et fournir les paramètres. Cela me semble accessible... Pour le reste, mes recherches sur le site et sur internet n'ont rien donné, mais peut-être n'avais je pas les bons mots pour la recherche.

    Suis preneur de toute solution.

    En vous souhaitant mes vœux les meilleurs et une bonne soirée.

    PS : je suis complètement rempli de 'sorry' si je ne suis pas sur le bon forum, merci de votre indulgence.

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Bonjour,

    dans le livre Delphi 7 Studio je parle des DLL...c'est toujours d'actualité

    Mais il est possible maintenant d'inclure des ressources dans un projet avec le menu Projet/Ressources et images...

    mais pourquoi ne pas simplement mettre les JPEG dans un répertoire ou même un fichier ZIP ?
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour le caillou et meilleurs vœux (c'est encore d'actualité)

    Je pencherai pour les ressources ou, pourquoi pas, un simple TImageList ou encore mettre les images dans la BDD
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    mettre les images dans la BDD
    euh... pour du statique ok, mais vraiment quand on n'a pas le choix, quel que soit le moteur de base de données

    ZIP pour du stockage de fichiers c'est facile et c'est standard

    les ressources du projet pourquoi pas, mais du coup il est volumineux si on ne se sert pas de tout

    sinon du téléchargement depuis un site web en fonction des besoins et un cache local des fichiers

    mais si c'est pour des images de boutons, de menus ou d'autres éléments liés à l'application : en VCL TImageList sur de vieilles versions, sinon TImageCollection (sur un data module) / TVirtualImage (sur la fiche qui les utilise) même si on ne met qu'une version de chaque image

  5. #5
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    juste par rapport à la DLL, en plus de compliquer inutilement le truc si on y stocke de toute façon toutes les images, il ne faut pas oublier que c'est une ressource qui peut stocker du code et des données, si c'est juste pour des images, elle sera de toute façon chargée en totalité en mémoire, donc pas d'avantage par rapport à tout mettre dans l'exe (sauf si tu fais plusieurs DLL, mais dans ce cas autant faire des ZIP ou mettre directement les images dans un dossier)

  6. #6
    Membre du Club
    Homme Profil pro
    Phyto-aromathérapeute
    Inscrit en
    Juillet 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Phyto-aromathérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 83
    Points : 46
    Points
    46
    Par défaut Intégrer jpg et string dans dll
    Bonjour Paul,
    Meilleurs vœux.
    Merci pour le lien, je vais potasser le domaine qui me semble à la fois simple et ardu.

  7. #7
    Membre du Club
    Homme Profil pro
    Phyto-aromathérapeute
    Inscrit en
    Juillet 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Phyto-aromathérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 83
    Points : 46
    Points
    46
    Par défaut Intégrer jpg et string dans dll
    Citation Envoyé par SergioMaster Voir le message
    Bonjour le caillou et meilleurs vœux (c'est encore d'actualité)

    Je pencherai pour les ressources ou, pourquoi pas, un simple TImageList ou encore mettre les images dans la BDD
    Bonjour Sergio,
    Merci pour les vœux reçois mes vœux les meilleurs en retour. Que 2023 soit ce que tu souhaites en faire.

    Peut-être de façon naïve, je cherchais, comme pour le SQL, à séparer le code des images et des messages. J'avais pensé mettre des images dans la BDD mais celle-ci à beaucoup 'gonflé', d'où cette idée de DLL, très pratique, si j'ai bien compris, au cas où je souhaiterai changer d'images...

    Merci pour l'info, je creuse l'idée.

  8. #8
    Membre du Club
    Homme Profil pro
    Phyto-aromathérapeute
    Inscrit en
    Juillet 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Phyto-aromathérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 83
    Points : 46
    Points
    46
    Par défaut Intégrer jpg et string dans dll
    Bonjour PPrem,
    Meilleurs vœux.
    Merci pour ta réponse. J'ai stocké pour le moment mes images dans un fichier .res qui fait gonfler mon .exe et comme je le mentionnais à SergioMaster, je pensais séparer code, image et messages, pour une meilleure lisibilité. Je suis peu familiarisé avec TImageList et TImageCollection, mais, là encore, je vais creuser car toutes les pistes me paraissent intéressantes.

    Cette idée est peut-être aussi due au fait que lors de mes cours de programmation, on me serinais que l'exe devait être le plus léger possible... Ceci dit, j'aime bien l'idée de séparer le code, le sql et les 'à-côté'.

  9. #9
    Membre du Club
    Homme Profil pro
    Phyto-aromathérapeute
    Inscrit en
    Juillet 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Phyto-aromathérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 83
    Points : 46
    Points
    46
    Par défaut Intégrer jpg et string dans dll
    Hey Paul,
    Te reste-t-il des livres ? Je suis très intéressé et souhaiterai en acquérir un car je pense avoir encore beaucoup de choses à apprendre.
    En te remerciant,
    CDLT

  10. #10
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    alors le livre était diffusé par Eyrolles, donc j'ai pas un stock de livres j'en avais quelques exemplaires qui ont été donnés au fil du temps...il ne m'en reste pas.

    il avait été question de le diffuser en eBook à une époque mais les négociations entre Eyrolles et DVP (qui était à l'origine de l'idée si mon souvenir est bon) n'ont rien donné et le projet est tombé à l'eau...avec Olivier on était d'accord pour sa diffusion à la condition qu'on puisse le diffuser librement nous même ... mais DVP et Eyrolles n'y on trouvé aucun intérêt commercial.

    petite remarque sur la taille de l'exe...à part le téléchargement qui peut être impacté, si l'exe contient des tas de ressources, celles-ci ne sont chargées qu'à la demande donc l'espace disque occupé n'a pas d'incidence directe sur l'occupation mémoire (sauf si tu utilises UPX qui charge une copie complète décompressée de l'exe en mémoire !)....
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  11. #11
    Membre du Club
    Homme Profil pro
    Phyto-aromathérapeute
    Inscrit en
    Juillet 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Phyto-aromathérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 83
    Points : 46
    Points
    46
    Par défaut Intégrer jpg et string dans dl
    Ok, merci Paul, je vais chercher sur le net car chez Eyrolles, il est indisponible.
    Encore merci pour les infos.

  12. #12
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    tu en trouves d'occasion https://www.chasse-aux-livres.fr/pri...-olivier-dahan

    Pour en revenir à la mise en place des images dans la base de données, c'est que, connaissant un peu ton application et ta base de données, il me semblait plus simple de mettre ces quelques images dedans pour ne transférer que ta base de données d'un pc à un autre (plutôt que la BDD + une dll ou le programme). J'aurais pu aussi suggérer du ftp (mais qui nécessiterai un serveur et un internet fiable)
    Le tout est plus de faire un compromis sur la taille des images mais pour une cinquantaine ce n'est pas la mer ,même Pacifique, à boire
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  13. #13
    Membre du Club
    Homme Profil pro
    Phyto-aromathérapeute
    Inscrit en
    Juillet 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Phyto-aromathérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 83
    Points : 46
    Points
    46
    Par défaut Intégrer jpg et string dans dll
    Salut Sergio,
    Toujours de bon conseil, toujours les bons tuyaux. Merci pour l'adresse, c'est en commande.

    J'avais envisagé d'intégrer les images dans la BDD mais je ne l'ai pas fait car j'étais resté sur cette idée de séparer les données, des messages et des images. Comme je te l'indiquais ma BDD à beaucoup gonflé, il y a maintenant 65 tables mais reste raisonnable en taille (même pas 0.05 mo...). Je vais tester, effectivement pour une trentaine d'images, surtout des icones, la BDD ne devrait pas trop gonfler.

    J'aime bien néanmoins cette idée de DLL, même si c'est plus contraignant, d'abord parce que je ne connais pas le sujet et ensuite parce que cela sépare bien les différents items.

    Plusieurs pistes m'ont été proposées (merci à tous les contributeurs), je vais les tester et j'emploierai celle qui me conviendra le mieux, celle qui me paraîtra la plus pratique et la plus fiable.

    En te remerciant encore,

    @+

  14. #14
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    perso je ne suis pas très fan des images de l'application dans une BDD...pour moi la BDD c'est pour des données variables et/ou utilisateur.

    imaginons que la version 2 de l'appli change de look...que fais-tu des images ? tu les gardes pour rester compatible V1 et tu ajoutes celles de la V2 ?

    après une DLL tant qu'à faire tu peux en faire plusieurs...exemple, THEMECLAIR.DLL et THEMESOMBRE.DLL et tu paramètres dans l'application le thème à utiliser...voir des images en fonction de la résolution (et ça marche aussi avec un fichier ZIP)
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  15. #15
    Membre du Club
    Homme Profil pro
    Phyto-aromathérapeute
    Inscrit en
    Juillet 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Phyto-aromathérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 83
    Points : 46
    Points
    46
    Par défaut Intégrer jpg et string dans dll
    Bonjour Paul,
    Merci pour ta réponse. J'exprimais, dans un message précédent, cette idée de séparer le code, les données, le SQL, les images et les messages. En quelque sorte, chaque chose à sa place et une place pour chaque chose.

    De plus, comme tu le dis si bien, c'est pratique pour maintenir et faire évoluer une application. Sinon cela n'existerait pas et les grandes entreprises de logiciels ne l'emploieraient pas pour leurs mises à jour. Néanmoins, ayant eu plusieurs réponses, même si j'ai ma petite idée, je vais toutes les tester (en fin de semaine car j'ai besoin de mon applicatif au quotidien) juste par honnêteté intellectuelle et par respect pour les contributeurs. Même si la BDD gonflerait avec les 30 images au format 32x32 et quelques illustrations, et malgré ma réticence, cette option peut être pratique néanmoins puisqu'il ne s'agit que de l'affichage d'une image, je change l'image, pas le nom et le tour est joué.

    Pour l'heure, en attendant ton ouvrage trouvé sur un site (encore merci à SergioMaster pour l'adresse), je potasse l'extrait que tu m'as envoyé et couche mes idées sur le papier. En effet, un peu lent de la comprenette, j'ai besoin dans un premier temps de lire, de relire et de relire encore afin de bien comprendre le modus operandi. Sachant qu'il n'y a aucune urgence, la pratique viendra après. Tout d'abord avec une dll dont je n'ai pas besoin mais qui me permettra de bien saisir et appliquer les différentes contraintes (déclarations, appels, passage de paramètres, etc...) et après pour ce dont j'ai besoin. Néanmoins, tout un tas d'idées me viennent comme intégrer des styles, effectuer des calculs statistiques sur mes données, etc...

    Avec Resource Hacker, j'ai regardé un peu les dll de Windows et cela me semble correspondre à ce que je pense : ne pas mélanger ce qui n'est pas comparable. Comme tu l'as suggéré, j'en arrive à envisager 2 dll, l'une pour les messages, l'autre pour les images, à voir. Si tel est le cas, je commencerai par une dll dédiée aux messages de l'applicatif, histoire de me faire la main, je verrais ensuite pour les illustrations.

  16. #16
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour
    Citation Envoyé par essence-ciel Voir le message
    J'avais envisagé d'intégrer les images dans la BDD mais je ne l'ai pas fait car j'étais resté sur cette idée de séparer les données, des messages et des images. Comme je te l'indiquais ma BDD à beaucoup gonflé, il y a maintenant 65 tables mais reste raisonnable en taille (même pas 0.05 mo...). Je vais tester, effectivement pour une trentaine d'images, surtout des icones, la BDD ne devrait pas trop gonfler.
    Je ne l'aurais pas proposé s'il s'était agi d'une image par élément de la table principale, mais pour 30 images petites, puisque icônes, c'est jouable et simple. Tu peux aussi si c'est possible envisager du SVG si tu trouves des Images valides en ce format et que tu as une version Delphi supportant SKIAForDelphi par exemple, avantage de SVG c'est du texte

    J'aime bien néanmoins cette idée de DLL,
    moi aussi, mais cela peut se révéler plus contraignant, (ne pas oublier de la copier, sur l'autre/les autres postes quand changement)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  17. #17
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    le fichier ZIP présente aussi un autre avantage sur la DLL...on peut le consulter sous Windows sans problème, voir le mettre à jour...alors que la DLL nécessite soit un éditeur de ressource, soit un compilateur.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  18. #18
    Membre du Club
    Homme Profil pro
    Phyto-aromathérapeute
    Inscrit en
    Juillet 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Phyto-aromathérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 83
    Points : 46
    Points
    46
    Par défaut Intégrer jpg et string dans dll
    Merci pour les suggestions, je teste actuellement les images dans la BDD. Pratique, pas de perte de temps, taille BDD restée correcte... Je verrai pour les autres options en fin de semaine prochaine entre temps j'aurai reçu ton livre Paul.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. utilisé string dans une dll c++
    Par info21 dans le forum C++
    Réponses: 4
    Dernier message: 06/04/2010, 13h34
  2. passer une string dans une DLL C++ (pas VC++)
    Par me_myself dans le forum Visual C++
    Réponses: 3
    Dernier message: 01/10/2007, 11h09
  3. string dans dll c++
    Par tunidev dans le forum C++
    Réponses: 3
    Dernier message: 09/05/2006, 16h28
  4. Réponses: 7
    Dernier message: 25/11/2005, 17h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo