PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Constante couleur
Constante couleur
Iniciado por jean-louis.5910, jun., 13 2005 9:15 PM - 4 respostas
Publicado em junho, 13 2005 - 9:15 PM
Bonjour.

Pour mieux gérer la maintenance de mon code, j'aimerais pouvoir créer des constantes couleur (à l'instar de ce qui existe en standard dans WD).
Malheureusement - et je comprends la logique de cette erreur - si j'écris (par exemple) :

CONSTANTE iJauneDemiTeinte = RVB(192, 192, 0)

le compilateur me signale "Erreur :La constante 'iJauneDemiTeinte' ne peut pas être déclarée car sa valeur n'est pas constante."

Comment puis-je faire autrement ?

Merci à toutes et à tous.

Jean-Louis
Publicado em junho, 14 2005 - 2:43 AM
Bonsoir,

Une constante ne peu pas être initialisée avec d'autre variable ou fonction mais avec des valeurs :
CONSTANT
<Nom de la constante 1> = <Valeur 1>
<Nom de la constante 2> = <Valeur 2>
FIN
Et alors, puisque la fonction RVB() renvoie une <Résultat> : Entier qui représente une Couleur (24 bits) relative aux composantes fournies.
Cette couleur est le résultat de la formule suivante :
Couleur = 65536 * Composante Bleu + 256 * Composante Verte + Composante Rouge.

A vous de calculer !!

CONSTANTE
iJauneDemiTeinte = 49344 // RVB(192, 192, 0)
FIN


Bonne Chance
-----------
//**//
Publicado em junho, 14 2005 - 11:28 AM
Bonjour,
Si tu utilises une constante, il faut lui donner une valeur fixe en effet. Dans ce cas, il faut que tu récupères la valeur de RVB(192, 192, 0) et la déclarer directement :

CONSTANTE
iJauneDemiTeinte = 49344
FIN

Sinon, il faut déclarer ta couleur en tant que variable de type entier

iJauneDemiTeinte est un entier = RVB(192, 192, 0)

Bon courage
A+
Publicado em junho, 16 2005 - 12:56 AM
Merci à tous les deux.
Je remarque la chose suivante :

- CONSTANTE iJauneDemiTeinte = (65536 * 192) + (256 * 192) + 0 utilisé dans le code d'application renvoie une couleur erronée (turquoise sombre)

- iJauneDemiTeinte est un entier = RVB(192, 192, 0) renvoie la couleur souhaitée.

Est-ce lié à ma carte graphique ?

Jean-Louis
Publicado em junho, 16 2005 - 11:24 PM
Bonsoir,

Non votre carte graphique fonctionne très bien !
Le mot RVB veut dire Rouge, Vert Bleu. Alors RVB(192, 192, 0) donne :
Composant Rouge = 192
Composant Vert = 192
Composant Bleu = 0

Or dans la fonction qui calcule la couleur souhaitée, les couleurs sont inversées :

Couleur = 65536 * Composante Bleu + 256 * Composante Verte + Composante Rouge.

Alors quand vous faites (65536 * 192) + (256 * 192) + 0 c'est l'équivalant d'une autre couleur = RVB(0,192,192) et 12632064 comme résultat!
La bonne ecriture c'est

Couleur = (65536 * 0) + (256 *192) + 192 et 49344 comme résultat

Bonne Chance
---------------
//**//