Powerbuilder pour les completement Geeks !

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 20-08-2008 15:50:20

Pilou007  
Membre Geek
Lieu: Bordeaux
Date d'inscription: 01-02-2007
Messages: 69
Pépites: 313
Banque: 0

[RESOLU] Couleur dans PB

Salut les ptit clous...
Je ne sais pas si cela a déjà été posé et certainement que vous allez rire, allez le ridicule ne tue pas....

Ca fait bientôt 10 ans que je fais du pb et la j'ai une question qui m'irrite depuis 10 ans car je n'ai jamais eu la réponse.....
Les couleurs dans PB, je maitrise bien la finction RGB, je maitrise bien la formule (65536 * Blue)+ (256 * Green)+ Red = long...
Par contre je n'ai jamais trouvé de truc qui me permette de revenir en arrière...
Par exemple gl_back_color= 12632256, comment trouver à quelle couleur cela correspond? Y a t-il un outil? Pourquoi beaucoup de développeur utilise des long plutôt que la fonction RGB???

Merci pour votre réponse.
Bye
Pascal

Dernière modification par Pilou007 (21-08-2008 08:59:40)

Hors ligne

 

#2 20-08-2008 16:20:35

Cortex  
Modérateur
Lieu: Arlon
Date d'inscription: 08-02-2008
Messages: 194
Pépites: 6,904
Banque: 2,109,818,425,070

Re: [RESOLU] Couleur dans PB

Bah, c'est du calcul ca...

Allez, un petit coup de pouce quand meme

Comme le facteur de multiplication entre les 3 parties est une puissance entiere de 2 (2^8), on peut faire comme suit:
1. le modulo 256 du long qui contient ta couleur correspond a la valeur du byte de poids le plus faible (le plus a droite). Donc, ta compo rouge!
2. le modulo 256 de la division entiere de ta couleur par 256 correspond au 2nd octet. Donc... la compo verte!
3. et ainsi de suite...

Tu saisi le principe?
C'est pas sorcier en fait... suffit de se rendre compte que diviser un entier par 2 fait un shift de 1 bit vers la droite de ton nombre...


Voila, t'as plus qu'a faire le code...

Hors ligne

 

#3 20-08-2008 17:28:34

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Couleur dans PB

Code: pb

B = RGB / 65536
G = (RGB - B * 65536) / 256
R = RGB - B * 65536 - G * 256

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#4 20-08-2008 18:00:23

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Couleur dans PB

N'oublie pas de mettre [RESOLU]


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#5 21-08-2008 08:22:59

Pilou007  
Membre Geek
Lieu: Bordeaux
Date d'inscription: 01-02-2007
Messages: 69
Pépites: 313
Banque: 0

Re: [RESOLU] Couleur dans PB

Et bien merci pour tout ça....
Mais je ne vais pas mettre de suite en résolu, j'ai encore envie d'en parler, hihihi.....

1090059512 (normalement transparent, je ne suis pas sur), la formule ne doit fonctionner que pour les couleurs, non???
ou encore 1090059512 // Couleur system des fenêtres???

Comment fait t-on pour les valeur de ce type?
Existe t-il un tableau qui répertorie toutes les valeurs possibles?

Merci

Hors ligne

 

#6 21-08-2008 08:35:01

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Couleur dans PB


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#7 21-08-2008 08:53:23

Cortex  
Modérateur
Lieu: Arlon
Date d'inscription: 08-02-2008
Messages: 194
Pépites: 6,904
Banque: 2,109,818,425,070

Re: [RESOLU] Couleur dans PB

Pour info...

Le byte de poids le plus elevé dans le long qui represente une couleur contient la valeur d'alpha. En PB ca ne sert pas a grand chose, si ce n'est de specifier la transparence (qui ne marche d'ailleurs pas avec tout).
Et les fameux 'button face', 'window background'... Ces couleurs systemes sont indexee dans ce byte d'alpha. (je ne sais plus si le reste du long a alors du sens...)

Et je finirai par dire que, pour ceux qui veulent faire des appels de l'API windows pour faire du GDI+, ATTENTION: PB inverse la position des bytes rouges et bleu par rapport a windows, le reste restant identique.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22