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

Composants VCL Delphi Discussion :

Composant COM et style XP


Sujet :

Composants VCL Delphi

  1. #1
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut Composant COM et style XP
    Bonjour,

    Je développe sous D7 un composant COM affichant des fiches. D'habitude (dans une appli classique), je n'ai qu'à poser le composant TXPManifest pour que les composants prennent le look XP. Là, pas moyen, ca ne marche pas... Une idée pour résoudre le problème ?

    Merci !

    NB : sous D5, il me semble que j'utilisais un fichier XML, mais pas moyen de le retrouver... Peut être ça marcherait ici ??

  2. #2
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    J'avais eu le même problème avec une applet du panneau de configuration. La réponse est sur msdn.

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut
    Désolé de faire "remonter" ce post (quoi que pas trop vieux !), parce que je me repenche sur le problème.

    D'abord merci Pierre de ta réponse. Je suis allé sur MSDN et j'ai lu l'article. Vu que mon application n'en est pas vraiment une (au sens que MSDN les présente c'est à dire avec l'extension EXE), je suis direct allé sur la section qu'il restait c'est à dire "Using ComCtl32 Version 6 in Control Panel or a DLL That is Run by RunDll32.exe".

    Mon appli malheureusement n'est ni un applet du panneau de configuration ni une DLL lancée par RunDLL, simplement une DLL COM standard. J'ai quand même tenté de suivre les étapes qu'ils proposent, à savoir créer le XML (et l'adapter), le renommer au même nom que l'application (chez moi ca donnait nom_dll.dll.manifest), inclure le fichier dans mon app Delphi avec un "{$R nom_dll.dll.manifest}" et enfin appeller InitCommonCtrls. J'échoue lamentablement à la seconde étape, le linker me dit que le fichier inclus est une ressource 16bits invalide. De toute façon, je ne crois pas que cet article convienne aux DLL comme la mienne, si ?

    Donc, sans vouloir être un , ou est mon erreur ?

  4. #4
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    A priori c'est plus simple que ça. Suis les indications que tu trouveras ici : http://www.prosim.net/pierre.castelain/micro-page/Sources/XPManifestCPL.html
    Elles concernent les .cpl mais il n'est pas impossible que ce soit identique pour les dll COM. Je ne peux pas vérifier, je n'ai pas de Windows XP sous la main.

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut
    Re-bonjour, et re-merci du coup de main !!

    J'ai suivi pas à pas les instructions du zip, recrée le fichier RES, puis inclus dans mon projet. Aucune erreur, ça se compile... mais mes boutons n'adaptent toujours pas le style XP. J'ai vu par contre que ça marchait impec pour l'appel du panneau de config...

    Je commence à croire que c'est impossible avec une DLL COM !...

  6. #6
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Essaies de faire la même manip avec l'identificateur "normal" : CREATEPROCESS_MANIFEST_RESOURCE_ID
    Si cela ne marche toujours pas, je ne vois pas. Il semblerait que ce soient les 2 seules constantes disponibles.

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut
    Bon, c'est bon, j'ai à moitié résolu mon problème : je mets le style XP à l'application appellant l'objet COM et celui-ci l'adopte.
    Par contre, si un utilisateur crée une instance de mon objet dans une application non "xp-isée", mes boutons ont le style standard Windows.

    Enfin bon, c'est pas extra, mais ca me convient :-)

  8. #8
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    C'est exactement pareil que pour les dll : les fiches prennent l'apprarence de l'application appelante. Ca permet une certaine homogénéité entre les différentes fiches d'une même application

    Bon dev'

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

Discussions similaires

  1. Faire un client pour un composant Com
    Par thecrax dans le forum C++
    Réponses: 2
    Dernier message: 02/06/2006, 16h30
  2. Développement d'un composant COM
    Par inertia dans le forum C++
    Réponses: 18
    Dernier message: 01/06/2006, 15h21
  3. [ATL] Debuguer un composant COM+ 1.0
    Par glKabuto dans le forum MFC
    Réponses: 8
    Dernier message: 16/05/2006, 19h22
  4. [VB] Problème composants COM Word
    Par Vince dans le forum VBA Word
    Réponses: 5
    Dernier message: 08/12/2005, 10h18
  5. [C#] C# et composant COM
    Par beway dans le forum Windows Forms
    Réponses: 5
    Dernier message: 08/11/2004, 08h56

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