UTILISER LE STYLE XP DE D1 À D7 (ASTUCE)

cs_costello Messages postés 136 Date d'inscription lundi 2 septembre 2002 Statut Membre Dernière intervention 15 février 2006 - 27 févr. 2004 à 21:50
cedricbi Messages postés 185 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 21 mars 2011 - 4 sept. 2007 à 20:43
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/20810-utiliser-le-style-xp-de-d1-a-d7-astuce

cedricbi Messages postés 185 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 21 mars 2011
4 sept. 2007 à 20:43
Je pense que c'est parce ce que, le SpeedButton et le BitButton ne sont pas de composants directements intégré par Microsoft, il doivent être en clair, gérés et créés par Delphi lui-même. Et Delphi, lui, ne prend pas en compte les différents thèmes.
Utilisateur anonyme
21 août 2007 à 15:48
Mais pour quoi ne fonctionne pas avec speedbutton ou bitntn et autre composant
cs_amiedz Messages postés 2 Date d'inscription jeudi 6 avril 2006 Statut Membre Dernière intervention 15 mars 2007
15 mars 2007 à 08:56
Merci beaucoup,
C exactement ce que je rechercher , une astuce sans composant à ajouter , ni dll à faire entrer en jeu, c simple et efficace.
bon courage.
cs_fanfan51 Messages postés 2 Date d'inscription samedi 4 novembre 2006 Statut Membre Dernière intervention 19 novembre 2006
19 nov. 2006 à 01:15
Slt CEDRICBI

Merci de m'avoir répondu et tu comfirme mes craintes, arff... fait ch... un composant ms si c la seul soluce.

---> en reponse au message
>Salut Fanfan51,
>
>Malheureusement, je ne connais pas de solution à ton problème !
>Le style XP ne prend pas en compte la couleur de certain >composant ainsi que d'autres propriétés. Il n'est donc pas >possible de modifier la couleur de certain oomposant en >utilisant les composants XP par défauts. Le seul remède est de >créer soit même les composants voulus...
>
>Bon courage !
>

:(
cedricbi Messages postés 185 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 21 mars 2011
18 nov. 2006 à 17:03
Salut Fanfan51,

Malheureusement, je ne connais pas de solution à ton problème !
Le style XP ne prend pas en compte la couleur de certain composant ainsi que d'autres propriétés. Il n'est donc pas possible de modifier la couleur de certain oomposant en utilisant les composants XP par défauts. Le seul remède est de créer soit même les composants voulus...

Bon courage !
cs_fanfan51 Messages postés 2 Date d'inscription samedi 4 novembre 2006 Statut Membre Dernière intervention 19 novembre 2006
16 nov. 2006 à 02:36
Slt a tous,

Etant moi même utilisateur de D7, j'ai fait un petit prog il y a un bout de temps.

Apres avoir lu ce post j'ai donc coller un composant XPMan dans mon projet.

Et la surprise le style xp a bien ete appliqué mais j'ai perdus les couleurs de mes panels et autres composants, seul la dbgrid garde ses couleurs.

Si quelqu'un a une solution je le remercie d'avance de m'en faire part

++
ps: désolé pour les fautes je suis pas très doué en français.
informatixo Messages postés 129 Date d'inscription mercredi 4 février 2004 Statut Membre Dernière intervention 25 juillet 2012 1
7 oct. 2005 à 20:30
oki et bien tampis. Merci quand même.
cedricbi Messages postés 185 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 21 mars 2011
26 sept. 2005 à 19:07
Informatixo -> Tu ne peux pas avoir de composants XP avec Win 2000 ! Logique le fichier Manifest (ou plutot la resource contenue dans le .RES) ne contient que la version des composantes (ou un truc du genre) à utiliser : le version, le name et le publicKeyToken de la ligne suivante :


Ainsi il n'est pas possible (à part en créant ses propres composants) d'utiliser les compo styles XP.
josswel Messages postés 67 Date d'inscription lundi 23 mai 2005 Statut Membre Dernière intervention 3 juin 2009
16 août 2005 à 11:38
salut oui je l'ai sur mon disk dans la lib de borland mais avec xpmanifest pourrait on avoir les meme resultats sous windows ?
josswel Messages postés 67 Date d'inscription lundi 23 mai 2005 Statut Membre Dernière intervention 3 juin 2009
16 août 2005 à 11:37
Salut
je me demandais seulement les form ont la config xp sous win xp si on utilise xpmanifest mais sous windows est possible ? sans utiliser des composant xpstyle ou du meme genre ?
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
8 juil. 2005 à 02:06
Tout à fait concluant avec Delphi4 pro, l'exécutable tournant sous XP of course...

Merci costello !

(ainsi qu'à l'auteur inconnu du fichier WindowsXp.Res)

P-S: Resource Hacker et eXesCope m'indiquent tous les deux que l'exe fourni dans le zip est en effet compressé.

En compilant sous D4, je passe à peine 314 ko, héhé... ;o)
informatixo Messages postés 129 Date d'inscription mercredi 4 février 2004 Statut Membre Dernière intervention 25 juillet 2012 1
17 juin 2005 à 17:42
Moi aussi je me sers de cette astuce, je précise que je suis avec delphi 7.

Quand j'exécute mon programme sous windows XP pro, il a l'apparence des contrôles XP il n'y a pas de problème.

En revanche, j'ai exécuté mon programme sous windows 2000 pro et là pas de joli contrôles façon XP. (Déception)

Alors j'ai essayé de rajouter le fichier WindowsXP.res dans le dossier qui contient l'exécutable et de le réexécuter mais c'est le même résultat.

Alors est-ce qu'il y a un moyen de retrouver nos jolis contrôles façon XP sur windows 2000 Pro ?

Il est vrai qu'une fois qu'on y a goûté, il est difficile de s'en passer.
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
21 mai 2005 à 09:57
Le forum donne du UPX dans l'air... EXE compressé !
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
9 avril 2005 à 14:36
éh éh!! C'est plus solide encore.... Avec la case à cocher des paquets, on peut faire des EXE de 30ko, pas 180. Mais là, y'a pas ces paquets de Delphi, et Dependency Walker ne montre AUCUN appel spécial à des BPL. C'est un vrai EXE autonome digne de ce nom. J'ai déjà croisé des EXE de cette taille, mais pas moyen de savoir avec quelle version :(
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
9 avril 2005 à 13:58
Sous Delphi 7, en utilisant les paquets d'exécution, on obtient même un exe de 18432 octets et 430080 sans utilisation de ces paquets.
Moi aussi je suis curieux de savoir comment tu as fait pour obtenir un exe de 169 472 octets.
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
9 avril 2005 à 11:33
Dans le Zip, il y a une application. Comment avez-vous fait pour qu'elle soit si légère ?
cs_costello Messages postés 136 Date d'inscription lundi 2 septembre 2002 Statut Membre Dernière intervention 15 février 2006
7 oct. 2004 à 20:51
... c'est précisément pour cette raison que l'astuce fonctionne pour toutes les versions de Delphi32
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
7 oct. 2004 à 19:46
Merci Technix59 pour nous avoir donné le détail du fichier WindowsXp.Res.
Pour préciser tes pensées, la seule indication exploitable par le compilateur de Delphi est qu'il doit lier la ressource WindowsXp.Res à l'exécutable.
Ce sera à Windows XP de décoder les ressources de l'exécutable et de rechercher une ressource au format XML lui indiquant comment il doit afficher les contrôles visuels.
En ce qui concerne le composant TXpManifest livré à partir de Delphi 7, il ne contient aucune propriété.
En déposant ce composant sur une fiche de votre application, l'unité XpMan est ajoutée à la clause uses.
Et que trouve t'on dans cette unité ?
Eh bien simplement la directive suivante :
{$R WindowsXp.res}

C'est tout, rien de plus.
Donc, si vous ajoutez manuellement l'unité XpMan dans une de vos fiches, vous obtiendrez le même résultat au final. Mais vous ne verrez pas le composant TXpMan sur votre fiche en mode conception.
Technix59 Messages postés 32 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 29 mars 2014
7 oct. 2004 à 13:21
Au fait, je viens de me rendre compte que ces posts n'étaient pas tout frais. Oups....
Celà dit, je suis tombé la dessus par hasard car c'était ma grande question du moment - L'apparence XP en D6.
Technix59 Messages postés 32 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 29 mars 2014
7 oct. 2004 à 13:18
Delphiprog, voici le contenu du .RES
----
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
-

- <dependency>
- <dependentAssembly>

</dependentAssembly>
</dependency>

----

Je pense que ça doit spécifier au compilateur la classe à utiliser pour les composants standards de Windows. Je vais creuser ça pour tenter de le faire sans passer par ce fichier .RES mais c'est pas gagné.
Il faudrait sans doute creuser dans TXPManifest que je ne possède pas étant toujours sous D6 qui me convient parfaitement. Quant à ce fameux fichier .RES, il n'était pas non plus sur mon disque. On peut donc se demander d'où provient-il???? C'est la grande question mais c'est quand même très fort.
nocaoper Messages postés 1 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 19 septembre 2004
19 sept. 2004 à 18:04
hmm, est-ce que je pourrai savoir ou l'écrire (après implant) c'est pas très clair
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
13 août 2004 à 18:18
En tout cas moi j' ai un bug si mon programme utilise le TXPManifest et si j' appelle une form qui est dans une de mes dlls ... L' erreur se produit en fermant l' executable : (

Si qqu' un sait pourquoi:
mauricio_box@hotmail.com
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
13 août 2004 à 18:16
J' explique pour ceux qui n' ont rien pigé:
Ça marche que sous XP!
C quoi l' intérêt alors qu' il me dit l' autre :
Bem si tu as la version de Delphi inferieure à 7, tu n' as pas le composant TXPManifest Ok? Alors tu fais comme l' exemple et Hohhhhh miracle ça marche !!!!!!!!!
cs_costello Messages postés 136 Date d'inscription lundi 2 septembre 2002 Statut Membre Dernière intervention 15 février 2006
23 avril 2004 à 11:47
et le composant XPMan n'est pas inclus dans les versions de 1 à 6 de delphi !!!
voilà, vous avez peut-être compris maintenant?? (alors vraiment...)
cs_GreatWizard Messages postés 1 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 22 avril 2004
22 avril 2004 à 17:38
C:\Program Files\Borland\Delphi7\Source\Vcl\XPMan.pas
C:\Program Files\Borland\Delphi7\Source\WindowsXP.*

Ca revient au même d'utiliser le fichier WindowsXP ou le composant XPMan ! :)

Voila c tout ... lol
cs_costello Messages postés 136 Date d'inscription lundi 2 septembre 2002 Statut Membre Dernière intervention 15 février 2006
5 avril 2004 à 12:15
y'a vraiment des gens pas très fut-fut................
lisez les explications de la source et ses commentaires!!!

(grr)
cs_michelw Messages postés 7 Date d'inscription mercredi 26 mars 2003 Statut Membre Dernière intervention 5 mai 2004
5 avril 2004 à 12:02
Ca ne marche pas avec Windose ME
cs_costello Messages postés 136 Date d'inscription lundi 2 septembre 2002 Statut Membre Dernière intervention 15 février 2006
7 mars 2004 à 15:16
bonne idée (que je n'ai pas eu)
personnellement j'adore ResourceHacker comme éditeur/hacker de ressources...
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
7 mars 2004 à 08:29
Merci pour ces précisions.
En tous cas, ce n'est pas livré ni avec les versions antérieures à Delphi 7 ni avec les versions antérieures à Windows XP.
Faudra que je regarde ce que contient ce fichier windowsxp.res.
cs_costello Messages postés 136 Date d'inscription lundi 2 septembre 2002 Statut Membre Dernière intervention 15 février 2006
7 mars 2004 à 01:44
normalement vous devriez déjà avoir ce fichier WindowsXP.res quelque part sur votre disque... je l'ai trouvé par hasard dans les répertoires /Borland/ (je ne sais plus ou! -ô_ô-) et je me suis dit que ça devait avoir un lien avec le XPManifest...
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
6 mars 2004 à 19:20
En clair, ça a le look Xp à condition de faire fonctionner le logiciel sous XP. :o(
Quelle est l'origine de ce fichier WindowsXp.res ?
Nerolph Messages postés 58 Date d'inscription vendredi 24 octobre 2003 Statut Membre Dernière intervention 4 septembre 2012
5 mars 2004 à 17:55
Mais est-ce que ça marche aussi sous Windows 98 ??
cs_costello Messages postés 136 Date d'inscription lundi 2 septembre 2002 Statut Membre Dernière intervention 15 février 2006
1 mars 2004 à 18:30
si mes explications ne sont pas assez claires, voici un résumé: cette astuce a le même effet que le composant TXPManifest de Delphi 7, mais il est utilisable sur toutes les versions de Delphi.
Il donne un style XP aux boutons et aux autres composants...
papyvore Messages postés 223 Date d'inscription samedi 15 novembre 2003 Statut Membre Dernière intervention 16 décembre 2021 15
1 mars 2004 à 13:28
bonjour
sous xp pro
l'EXE joint dans le zip ,a l'execution a le même aspect qu'une
fenêtre XP.
la fenêtre ne change pas
a+
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
1 mars 2004 à 10:53
Salut,
Juste pour information je voudrais savoir si l'exe aura l'aspect xp uniquement en fonctionnement sous win xp ou également sous un autre os. Car je viens d'essayer en win 2000 et ma fenetre de change pas?

merci et A+,
JMP.
papyvore Messages postés 223 Date d'inscription samedi 15 novembre 2003 Statut Membre Dernière intervention 16 décembre 2021 15
29 févr. 2004 à 19:15
bonjour
houai ! c'est bien mais je vois pas l'interet pour D7 ??
c'est déja dans le composant XPmanifest
a+
cs_costello Messages postés 136 Date d'inscription lundi 2 septembre 2002 Statut Membre Dernière intervention 15 février 2006
27 févr. 2004 à 21:50
je suis bête... pour une ligne, j'étais pas obligé de mettre un code source entier...

enfin bon, comme ça vous avez un joli exemple :)
Rejoignez-nous