OVH Cloud OVH Cloud

C++Builder6 et PhotoShop 5.5 Image de fond uni

5 réponses
Avatar
Olivier
Bonjour
J'ai des image de fond sur mon TreeView
je voudrais faire un fond uni

Dans PhototoShop ,sur une image ,j'ai un code couleur #9D4BF8

Le probleme est que dans BCB il m'affiche pas la bonne couleur

MyTv->Color=(TColor)"#9D4BF8";

ou est mon erreur ?

Il y a d'autres fonctions a utilser ?

Il y a une page dans l'aide de BCB ou il y les codes couleur en hexa
(pas les constante du style csYelllow) ?


merci de votre aide

--
Cordialement ,
Sarda Olivier

Site Web:
http://membres.lycos.fr/osarda

5 réponses

Avatar
Michel Leunen
Olivier wrote:

J'ai des image de fond sur mon TreeView
je voudrais faire un fond uni

Dans PhototoShop ,sur une image ,j'ai un code couleur #9D4BF8

Le probleme est que dans BCB il m'affiche pas la bonne couleur

MyTv->Color=(TColor)"#9D4BF8";



Color est du type TColor qui est en fait un enum. Tu ne peux donc pas
lui assigner une chaîne de caractères. Tu dois donner à Color une valeur
du type 0x00BGR qui correspond au COLORREF de Windows. Parse ton string
pour en extraire les différentes composantes R, G, B, transforme-les en
un nombre entier que tu passes à ta propriété. Eventuellement, tu peux
utiliser la macro de l'API Windows RGB() pour t'aider.

Michel
--
----------------------------------------
Michel Leunen
mailto:
http://www.leunen.com/cbuilder/
----------------------------------------
Avatar
Dominique Baldo
Michel Leunen nous disait

> Le probleme est que dans BCB il m'affiche pas la bonne couleur
>
> MyTv->Color=(TColor)"#9D4BF8";

Color est du type TColor qui est en fait un enum. Tu ne peux donc pas
lui assigner une chaîne de caractères. Tu dois donner à Color une valeur
du type 0x00BGR qui correspond au COLORREF de Windows. Parse ton string
pour en extraire les différentes composantes R, G, B, transforme-les en
un nombre entier que tu passes à ta propriété.



... en oubliant pas d'inverser l'ordre:
#9D4BF8 => R=0x9D, G=0x4B, B=0xF8 donc la colorref est
0xF84B9D (et pas 0x9D4BF8)
Avatar
Olivier
Comment fait pour arriver au resultat peut m'expliquer
je suis novice au niveau de code hexa ?
comment decoupe tu la chaine "#9D4BF8" ?
quel est l'ordre de RGB ou doivent etre enoncée les couleur ?

peut tu m'expliquer ?

utilise une fonction propre a BCB ou API ?

merci je vais teste et cela marche
j'ai d'autre converion a faire

code : MyTv->Color=(TColor)0xF84B9D;
--
Cordialement ,
Sarda Olivier

Site Web:
http://membres.lycos.fr/osarda
Dominique Baldo a écrit dans le message :

Michel Leunen nous disait

> > Le probleme est que dans BCB il m'affiche pas la bonne couleur
> >
> > MyTv->Color=(TColor)"#9D4BF8";
>
> Color est du type TColor qui est en fait un enum. Tu ne peux donc pas
> lui assigner une chaîne de caractères. Tu dois donner à Color une valeur
> du type 0x00BGR qui correspond au COLORREF de Windows. Parse ton string
> pour en extraire les différentes composantes R, G, B, transforme-les en
> un nombre entier que tu passes à ta propriété.

... en oubliant pas d'inverser l'ordre:
#9D4BF8 => R=0x9D, G=0x4B, B=0xF8 donc la colorref est
0xF84B9D (et pas 0x9D4BF8)


Avatar
Michel Leunen
Olivier wrote:
Comment fait pour arriver au resultat peut m'expliquer
je suis novice au niveau de code hexa ?
comment decoupe tu la chaine "#9D4BF8" ?



Si tu travailles avec les AnsiString, regarde du côté des méthodes Pos()
et SubStr().


code : MyTv->Color=(TColor)0xF84B9D;



Attention, tu dois donner un nombre en 32 bits: 0x00F84B9D. Les deux
premiers digits ont une signification aussi, regarde dans l'aide à
TColor, mais tu peux les mettre à 0 sans problème.

Michel
--
----------------------------------------
Michel Leunen
mailto:
http://www.leunen.com/cbuilder/
----------------------------------------
Avatar
Michel Leunen
Dominique Baldo wrote:

Michel Leunen nous disait
Tu dois donner à Color une valeur
du type 0x00BGR qui correspond au COLORREF de Windows.




^^^^^^^
C'est ce que je disais :-)

... en oubliant pas d'inverser l'ordre:
#9D4BF8 => R=0x9D, G=0x4B, B=0xF8 donc la colorref est
0xF84B9D (et pas 0x9D4BF8)



Michel
--
----------------------------------------
Michel Leunen
mailto:
http://www.leunen.com/cbuilder/
----------------------------------------