Panel qui change de couleur???

Résolu
cs_apoke Messages postés 20 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 8 février 2005 - 11 oct. 2004 à 20:34
cs_apoke Messages postés 20 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 8 février 2005 - 18 oct. 2004 à 21:36
Salut tout le monde j'ai un problème avec un panel dont la couleur lors de la création est bleu.en fait il y'a des dbedit connecté à une table dans ce panel et dès que j'éxecute le programme le panel prend la couleur de la form (dans mon cas gris) impossible de garder la couleur bleu que je désir.
Merci d'avance pour votre aide car je galère grave.
@++

6 réponses

cs_LeGuepard Messages postés 39 Date d'inscription mardi 16 septembre 2003 Statut Membre Dernière intervention 7 septembre 2015 2
15 oct. 2004 à 11:12
Salut!

Vous me faites bien rire quand même. Lisez le forum et vous verrez que cette question est déjà revenue pas mal de fois et que la réponse a déjà été donnée! La solution est bien plus simple que vous ne le pensiez. Le fait est que cela vient d'un bug de Delphi, et oui ça arrive! :shy)

Une petite explication s'impose à mon avis concernant le fonctionnement de la création des composants lors du lancement de l'application.

Prenons par exemple le composant TPanel puisque c'est celui-ci qui nous pose problème. Celui-ci possède donc des propriétés qui on une valeur pas défaut. Lorsque à la conception vous changez une de ces propriétés, cette modification est notée dans le fichier .dfm de votre Form. Ainsi, si vous avez deux TPanel sur votre Form et que vous changer la couleur du premier en la mettant à "clRed" par exemple, dans le code du fichier .dfm il sera déclaré les deux TPanel, mais pour le premier il indiquera en plus que la couleur a la valeur "clRed" tandit que pour l'autre, il n'indiquera rien. Vous pouvez facilement constater de cela en cliquant droit sur votre Form et en choisissant dans le menu "Voir comme texte". Lorsque votre application se crée, elle va donc tout naturellement modifier les paramètres des composants en fonction des indications notées dans le fichier .dfm.

Mais revenons à nos moutons ou plutôt à nos TPanel. Lorsque vous en placez un sur votre Form et que vous regardez dans l'inspecteur d'objets les propriétés "ParentBackGround" et "ParentColor", celles-ci sont renseignées comme étant à False. Malheureusement, elles sont bel et bien à True dans la configuration interne du composant, et donc lors du lancement de l'application, comme il n'est pas renseigné de les modifier, elles prennent la valeur réelle par défaut à savoir True, et le TPanel prend donc la couleur de l'objet "parent" qui le contient.

Pour pouvoir palier à ce bug, il suffit de faire ce qui suit :
(En mode création)
- faite passer les propriétés "ParentBackGround" et "ParentColor" à True.
- Refaite passer les propriétés "ParentBackGround" et "ParentColor" à False pour que soit noté dans le fichier .dfm que ces propriétés sont à l'état False.
- Enfin, changer la couleur de votre TPanel.

Et voilà, ce n'est pas plus compliqué que cela et il n'y a pas besoin de d'utiliser un autre composant. Et pour répondre à Emandhal, cela arrive aussi en mode classique sous Windows XP à partir du moment où l'on utilise le composant TXPManifest.
2
Emandhal Messages postés 194 Date d'inscription dimanche 2 mars 2003 Statut Membre Dernière intervention 10 octobre 2006 3
11 oct. 2004 à 21:15
J'ai eut le même problème, ça arrive lorsqu'il y a un thème Windows de mis à part le classic.
Pour y remédier il faut soit utiliser autre chose qu'un panel ou alors dériver le composant TPanel et enlever la gestion des thèmes.

Tout problème a sa solution... Mais en général, c'est jamais la bonne...
0
Loulibier Messages postés 309 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 24 septembre 2008 2
11 oct. 2004 à 21:18
salut,

Si tu utilises le composant pour avoir le look Windows ou la resource WindowsXP, il est tout à fait normale que tu ais ton panel de la même couleur que ta forme. Cela ne viens pas de son contenu. Par contre je ne pourrais pas te dire comment y remedier, a part redessiner toi même ton Panel.

Bonne Prog, ;)

Olivier

PS : Lorsqu'une réponse vous convient, n'oubliez pas de la valider.
0
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Modérateur Dernière intervention 18 novembre 2010 14
12 oct. 2004 à 02:29
hello,
la solution est la suivante (fonctionne puisque testée) :

Emandhal et Loulibier ont tout a fait raison :
1) il faut utiliser un dérivé du composant TPanel
2) redessiner toi même ton Panel

moie je dit :
3) mets un ProPanel ! le theme n'est pas pris en compte, tu peux trouver la librairie PRO (free) sur google ou ici :


N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient ! ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Modérateur Dernière intervention 18 novembre 2010 14
15 oct. 2004 à 12:13
HAAAAA bien joué LeGuepard ! "Réponse acceptée" ;)

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient ! ;)
0
cs_apoke Messages postés 20 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 8 février 2005
18 oct. 2004 à 21:36
Merci beaucoup les gars, vous êtes super!!
@++
0