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

C++Builder Discussion :

Changer l'icône d'une fenêtre à partir d'un .res


Sujet :

C++Builder

  1. #1
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 374
    Points : 1 759
    Points
    1 759
    Par défaut [Resolu] Changer l'icône d'une fenêtre à partir d'un .res
    Si l'opération est simple à partir d'un fichier .ico, comment faire
    par contre, à partir d'icônes contenues dans les ressources.

    J'ai créé ces icônes avec l'édteur d'images de BCB dans le .res de mon projet.
    Je précise que cette manipulation intervient lors de la création de fenêtres enfants.

    Comment fait-on ?

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 374
    Points : 1 759
    Points
    1 759
    Par défaut
    Je pense que je vais abandonner cette voie, même s'il existe des
    pistes du coté API : FindResource, LoadResource, LockResource,
    LoadIcon... C'est un peu galère...
    C'est un peu trop "prise de tête" avec la doc MSHelp !

    "Il y a des jours comme ça...
    "où plus rien ne va...

    Je vais me contenter de faire comme tout le monde :

    ...Icon->LoadFromFile(...). pffffff !

  3. #3
    LFE
    LFE est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 95
    Points : 2 463
    Points
    2 463
    Par défaut
    As tu regardé cette fonction ?

    TIcon::LoadFromResourceName

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 374
    Points : 1 759
    Points
    1 759
    Par défaut
    Salut LFE.

    Oui, mais je n'ai pas réussi à mettre en oeuvre.
    Ca donnait l'impression que la ressource n'existait pas alors
    que j'ai créé 4 icônes avec l'éditeur d'images (et de ressources)
    fournit avec BCB3...

    De toute façon je n'arrive pas bien à comprendre la manip avec les TIcon..

    Merci et à plus.

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2002
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 16
    Points : 22
    Points
    22
    Par défaut
    Il semblerait que BCB ait des petits problèmes avec la compilation des ressources : une nouvelle icône ou bitmap n'est pas toujours prise en compte, même quand on fait une recompilation complète. Le remède que j'ai trouvé : effacer le fichier Project.tds et recompiler (c'est pas très propre, mais ça marche).
    Il y a trois sortes d'informaticiens : ceux qui savent compter et ceux qui ne savent pas compter.

  6. #6
    Membre régulier
    Avatar de bebeours
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 103
    Points : 123
    Points
    123
    Par défaut
    Je confirme que BCB a des problèmes avec la compilation des fichiers ressources (.rc). Il faut effacer le .res avant chaque recompilation pour être bien sûr que la nouvelle ressource soit intégrée dans l'application.

    Mais cette manipulation ne suffit pas lorsqu'on souhaite intégrer des ressources dans une DLL. Je ne comprends pas pourquoi. Il faut faire F9 (Exécuter) pour construire une DLL qui contienne bien les ressources.

    J'utilise BCB 6 PRO.

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 374
    Points : 1 759
    Points
    1 759
    Par défaut
    Si c'est ça..... !!
    Si c'est pas ça :

    Il y a de toute évidence un problème dans la version 3 que je n'ai pas réussi
    à résoudre au niveau du lien possible entre deux entités :
    - HICON de WINDOWS qui est un handle de ressource du type icône
    - TIcon de BCB qui est un objet VCL (Graphics::TIcon).

    La solution la plus simple aurait pu ressembler à ceci :

    ?...LoadIcon(HInstance, "POMME");//API
    ..?..
    Form1->Icon->Assign(?);//BCB
    ou bien
    Form1->Icon = ?;

    C'est à dire un ensemble d'étapes aussi faciles que pour un curseur personnalisé...
    J'ai passé quelques heures la dessus à explorer les API... FindResource() etc...
    Plus j'ai cherché et testé et plus je me suis planté !

    A plus.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      Form1->Icon->ReleaseHandle();
      Form1->Icon->Handle = LoadIcon( HInstance , "POMME") ;

  9. #9
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 374
    Points : 1 759
    Points
    1 759
    Par défaut
    C'est la solution !
    Un grand merci AMILIN et à vous tous !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/05/2009, 09h29
  2. Changer l'icône d'une fenêtre dans forms 10g DS
    Par rafioklou dans le forum Forms
    Réponses: 2
    Dernier message: 10/10/2007, 11h08
  3. Changer le titre d'une fenêtre dynamiquement
    Par Dnx dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/11/2005, 16h32
  4. changer le "look" d'une fenêtre...
    Par just1980 dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 20/04/2005, 19h23
  5. icône d'une fenêtre fille
    Par bastien dans le forum C++Builder
    Réponses: 6
    Dernier message: 27/05/2002, 13h46

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