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

EDI Delphi Discussion :

D2009 et chargement de png et jpg par les ressources


Sujet :

EDI Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 17
    Points : 12
    Points
    12
    Par défaut D2009 et chargement de png et jpg par les ressources
    bonjour,

    Je cherche à avoir accès à des images png et/ou jpg en les intégrant en tant que ressource dans mon projet par le menu Projet->Ressources...
    sans passer par un fichier .res et le déclarer avec $R

    normalement ça fait partie des nouveautés D2009

    je déclare donc mes 2 ressources

    monImageJpg.jpg RCDATA JpgImage_1
    monImagePng.png RCDATA PngImage_1

    pour charger une des images dans un speedbutton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        SpeedButton1.Glyph.LoadFromResourceName(HInstance,'JpgImage_1');
        SpeedButton1.Glyph.LoadFromResourceName(HInstance,'PngImage_1');
    à chaque fois j'ai le message
    "Ressource JpgImage_1 non trouvée"

    Alors que si je déclare un bmp dans mes ressources, le load se passe très bien.
    Pouvez-vous me dire si vous avez le même message d'erreur sur vos postes de dév.
    merci

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 696
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 696
    Points : 13 135
    Points
    13 135
    Par défaut
    J'ai fait un essai et ça fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TForm1.FormCreate(Sender: TObject);
    var
      Png :TPngImage;
    begin
      Png := TPngImage.Create;
      Png.LoadFromResourceName(hInstance, 'PngImage_1');
      Image1.Picture.Assign(Png);
      Png.Free;
    end;
    Le problème viens du Glyph qui ne supporte toujours que les bitmaps .

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    tu me devances, j'arrive au même code pour le faire fonctionner.
    merci pour l'aide

  4. #4
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    je pense que derriere le "SpeedButton1.Glyph.LoadFromResourceName" se cache LoadResource(..., RT_BITMAP, ...)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    pour le jpg, je suis passé par une ressource car la procedure LoadFromResourceName n'existe pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    var
      Res: TResourceStream;
      Jpg : TJPEGImage;
    begin
        Jpg := nil;
        Res := nil;
        try
          Jpg := TJPEGImage.Create;
          Res := TresourceStream.Create(HInstance, 'JpgImage_1', RT_RCDATA);
          Jpg.LoadFromStream(Res);
          SpeedButton1.Glyph.Assign(Jpg);
        finally
          Res.Free;
          Jpg.Free;
        end;
    end;

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    je me permets de rouvrir le topic car je bute dans un cas particulier.
    les méthodes décrites ci-dessus marche très bien à partir d'un projet.

    J'ai donc voulu procéder de la même manière dans un package (bpl), je déclare mes ressources et je charge ces ressources dans mes composants.
    sauf que dans ce cas, il me met de nouveau l'erreur "Ressource PngImage_1 non trouvée"

    pour que mes composants perso retrouvent leurs ressources, il veut absolument les memes ressources dans le projet final

    je sais pas si ça peut provenir de l'instance?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 213
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par b.grellee Voir le message
    je me permets de rouvrir le topic car je bute dans un cas particulier.
    les méthodes décrites ci-dessus marche très bien à partir d'un projet.

    J'ai donc voulu procéder de la même manière dans un package (bpl), je déclare mes ressources et je charge ces ressources dans mes composants.
    sauf que dans ce cas, il me met de nouveau l'erreur "Ressource PngImage_1 non trouvée"

    pour que mes composants perso retrouvent leurs ressources, il veut absolument les memes ressources dans le projet final

    je sais pas si ça peut provenir de l'instance?
    J'ai exactement le même soucis, as tu trouvé une solution?
    Mais quelle bordel !

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 213
    Points : 109
    Points
    109
    Par défaut
    Voilà, finalement j'ai trouvé une solution!

    Je n'utilise plus de gestionnaire de ressources pour le package mais je compile le fichier RES de manière indépendante via BRCC32 et je l'inclus dans le package.
    De cette manière, toute fonctionne nickel et ... du premier coup!

    Je joins le site internet qui m'a aidé à réussir l'opération : http://www.delphi3000.com/articles/article_2606.asp?SK=
    Mais quelle bordel !

Discussions similaires

  1. Chargement d'un script javascript par Ajax
    Par lvr dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/12/2007, 23h16
  2. Réponses: 4
    Dernier message: 19/10/2007, 10h27
  3. Réponses: 7
    Dernier message: 16/05/2007, 13h26
  4. pb de chargement d'un xml créé par php
    Par rogerlenoir dans le forum Flash
    Réponses: 7
    Dernier message: 27/01/2007, 11h18
  5. Vitesse de chargement d'une image jpg ?
    Par ybruant dans le forum Langage
    Réponses: 6
    Dernier message: 16/11/2004, 20h42

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