cs_apoke
Messages postés20Date d'inscriptionvendredi 17 janvier 2003StatutMembreDernière intervention 8 février 2005
-
11 oct. 2004 à 20:34
cs_apoke
Messages postés20Date d'inscriptionvendredi 17 janvier 2003StatutMembreDerniè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.
@++
cs_LeGuepard
Messages postés38Date d'inscriptionmardi 16 septembre 2003StatutMembreDernière intervention 7 septembre 20152 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.
Emandhal
Messages postés194Date d'inscriptiondimanche 2 mars 2003StatutMembreDernière intervention10 octobre 20063 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...
Loulibier
Messages postés309Date d'inscriptionjeudi 6 juin 2002StatutMembreDernière intervention24 septembre 20082 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.