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

Delphi Discussion :

enregistrer une timagelist dans un fichier


Sujet :

Delphi

  1. #1
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut enregistrer une timagelist dans un fichier
    Bonjour

    J'utilise une timagelist dans laquelle je stocke des icones dont j'ai besoin pour mon application.
    Ces icones sont récupérées dans des .exe.
    Jusque là, no pb

    Là ou ça se corse, c'est que j'aimerais pouvoir alimenter dynamiquement cette liste d'icones et surtout l'enregistrer sur le disque dur
    J'ai bien trouvé MonIcone.SaveToFile pour une seule image
    Comment faire pour les regrouper toutes dans un seul fichier, à la façon de shell32.dll, et les récupérer à l'aide d'un indice

    Merci pour votre aide

  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    La réponse est sur la page source:
    http://delphi.developpez.com/sources...no40source0003

  3. #3
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut
    Salut

    Citation Envoyé par nono40
    Pour créer une dll ne contenant que des icônes voici la marche à suivre :
    - Créez un fichier .RES à l'aide de l'éditeur d'image de Delphi. Ce fichier doit contenir toutes les icônes que vous voulez mettre dans votre dll.
    - Créez une nouvelle dll ( fichier/nouveau/autre... ->Expert dll )
    - Ajouter une directive {$R MesIcones.res } où MesIcones.res est le fichier de ressources contenant vos icones.
    - Supprimez tous le reste du source afin qu'il ressemble à celui ci-dessous
    - Compilez et c'est fini !! Facile non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Library Ico;
     
    {$R MesIcones.res}
     
    Begin
    End.
    OK pour ça Pedro... via l'éditeur d'images
    Mais y a t-il un moyen d'alimenter cette ressource dynamiquement
    Ca me paraît compliqué, vu que ce fichier est lui-même compilé...

    En fait, je cherche plutôt une méthode, voir un compo, qui me permettrait d'enregistrer dynamiquement et de gérer un groupe de TImages (lire, ajouter, supprimer des images) dans un fichier sur le DD...

    L'ideal serait un genre de TImageList.SaveToFile et TImageListe.LoadFromFile...

  4. #4
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 854
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 854
    Points : 15 274
    Points
    15 274
    Par défaut
    Salut.

    Et pourquoi que tu ne t'inspirerais pas du récent code posté par Sub0 ? Il enregistre tout un tas de composants et leurs propriétés dans un fichier, dont un TImage et son image : lien
    Cherche datasave4.zip

    Mes 2 cts,
    --
    jp

  5. #5
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Citation Envoyé par OutOfRange
    OK pour ça Pedro... via l'éditeur d'images
    Mille excuses j'avais mal lu.
    Citation Envoyé par OutOfRange
    Mais y a t-il un moyen d'alimenter cette ressource dynamiquement
    Ca me paraît compliqué, vu que ce fichier est lui-même compilé...
    C'est forcément possible puisque des programmes le font: MicroAngelo par exemple
    Par contre, je ne sais pas comment

  6. #6
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut
    Salut

    J'ai creusé ton idée Jipété mais je bloque.
    Si D6 veut bien compiler ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    biblicon:=tfilestream.Create(chemin+'biblicones.dat',fmcreate);
    biblicon.WriteComponent(listicon);
    ... j'ai une erreur Violation d'accès... lecture de l'adresse 00000000
    à l'exécution

    J'ai essayé avec d'autre composant (TImage, TBitBtn...) et j'ai toujours la même erreur (listicon est une TImageList)

    Y'a p't'être qqchose que je ne fais pas bien.

    Dans le code de nono40, à quoi sert la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PageControl1.Parent := Form1;
    puisque ce composant a été posé sur la form en mode conception

    Je ne peux pas taper une ligne équivalente, vu qu'une TImageList n'a pas de propriété parent...



    Citation Envoyé par Pedro
    Mille excuses j'avais mal lu.
    Pas grave, ça arrive à tlm

  7. #7
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 854
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 854
    Points : 15 274
    Points
    15 274
    Par défaut
    Io !

    J'ai creusé ton idée Jipété mais je bloque
    Ben moi j'ai proposé ça parce que j'ai (à peine) joué avec et par coïncidence l'image que j'ai utilisée était une icône, en fait un fichier.ico exactement.

    Et j'ai constaté que le code de Sub0 fonctionnait : enregistrement de tous les composants de la form et de leurs propriétés, et création dynamique et rechargement. Me suis dit que ça ressemblait, et que tu pourrais adapter.
    Peux pas t'en dire plus.
    --
    jp

  8. #8
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut
    OK
    Merci pour l'idée
    Je pense pouvoir me servir de ça... Si qqn peut m'aider à y voir + clair
    (voir mon post précédent)



    Y'aurait pas nono40 dans l'coin
    Il aurait pas quelques minutes à occuper pour aider un piètre autodidacte

  9. #9
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut
    Salut

    En fait, je faisais un bourde qui n'avait rien à voir avec le sujet, du genre TfileSream.create instanciée 2 fois... forcément

    En fait, CA MARCHE AU POIL

    Il suffit d'une ligne pour écrire ou lire mon TImageList. Je récupère et je gère toutes les icones dont j'ai besoin.

    nono40, c'est GE-ANT

    Merci Jipété pour le tuyau

    @+

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

Discussions similaires

  1. [D7],[Access],[ADO],enregistrer une erreur dans un fichier log
    Par iam dans le forum Bases de données
    Réponses: 9
    Dernier message: 16/04/2007, 18h24
  2. Enregistrer une table dans un fichier .xls
    Par kmaniche dans le forum C++Builder
    Réponses: 3
    Dernier message: 15/10/2006, 09h59
  3. Enregistrer une image dans un fichier XML
    Par MiJack dans le forum Delphi
    Réponses: 12
    Dernier message: 24/05/2006, 10h24
  4. enregistrer une donnee dans un fichier txt
    Par zorglub88 dans le forum MFC
    Réponses: 33
    Dernier message: 27/01/2006, 15h13
  5. Comment enregistrer une string dans un fichier
    Par Dnx dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 23/09/2005, 14h52

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