IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Plugins : gestion RVB d'une couleur définie dans 4D

L'auteur

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

Produit : 4D 2003, 4D 2004

Plateforme : Mac & Win


Le format de la variable couleur des plug-ins 4D est différent du format de la variable couleur quand elle est définie dans 4D.

Les composants RVB Rouge et Bleu doivent dans ce cas être inversés.

Si dans du code 4D Chart, 4D Draw, 4D View, 4D Write, vous voulez utiliser une couleur définie dans 4D, il faudra donc inverser les résultats Rouge et Bleu obtenus avec les commandes des plugins telle que :

ch_COULEUR VERS RGB / ch_RGB vers couleur (4D Chart)
dr_COULEUR VERS RGB / dr_RGB vers couleur (4D Draw)
PV COULEUR VERS RVB / PV RVB vers couleur (4D View)
WR COULEUR VERS RGB / WR RGB vers couleur (4D Write)

On crée d'abord une petite méthode utilitaire :

 
Sélectionnez
   ` Methode: util_Chaine_Entier_Long_Hexa
   ` Retourne une chaine en Hexa de longueur 8 sur un entier long
   ` ----------------------------------------------------
C_ENTIER LONG($1)
C_TEXTE($0)

C_TEXTE($Defaut;$Resultat)
$Defaut:="0"*8

$Resultat:=Chaine($1;"&x")
$Resultat:=Sous chaine($Resultat;3)
$0:="0x"+Sous chaine($Defaut;1;(8-Longueur($Resultat)))+$Resultat
   ` ----------------------------------------------------

Puis un exemple de code avec 4D Chart : ` Méthode : ch_Couleur_Vers_RVB

 
Sélectionnez
   ` Méthode : ch_Couleur_Vers_RVB
   ` ch_COULEUR VERS RGB (couleur; rouge; vert; bleu)
   ` parametre $1 (entier long) couleur
   ` parametre opt $2 (booleen) vrai si couleur définie dans 4D (pas dans 4D Chart)

C_ENTIER LONG($1)
C_BOOLEEN($2)

C_ENTIER LONG($Couleur;RVB_Rouge;RVB_Vert;RVB_Bleu;$RVB_Temp)
C_BOOLEEN($b4D_couleur)
C_TEXTE($txt)

$Couleur:=$1
Si (Nombre de parametres>1)
   $b4D_couleur:=$2
Fin de si 

ch_COULEUR VERS RGB ($Couleur;RVB_Rouge;RVB_Vert;RVB_Bleu)
Si ($b4D_couleur)  `il faut inverser RVB_Rouge et RVB_Bleu
   $RVB_Temp:=RVB_Rouge
   RVB_Rouge:=RVB_Bleu
   RVB_Bleu:=$RVB_Temp
Fin de si 

$txt:="Couleur = "+util_Chaine_Entier_Long_Hexa ($Couleur)+Caractere(13)
$txt:=$txt+"Rouge = "+Chaine(RVB_Rouge)
$txt:=$txt+", Vert = "+Chaine(RVB_Vert)+", Bleu = "+Chaine(RVB_Bleu)
ALERTE($txt)

et methode de test (si on a une zone 4D Chart "Zone").

 
Sélectionnez
   ` Ces deux exemples vont donner une couleur équivalente aux deux rectangles
C_ENTIER LONG($Couleur;$Rect;$Rect2)
C_BOOLEEN($b4D_couleur)

   ` 1/ Si on passe une couleur exemple de 4D
$Couleur:=255  ` bleu dans 4D
$b4D_couleur:=Vrai

ch_Couleur_Vers_RVB ($Couleur;$b4D_couleur)
$Rect:=ch_Creer rectangle (Zone;5;5;200;200;5)
ch_FIXER TRAMAGE (Zone;$Rect;3;ch_RGB vers couleur (RVB_Rouge;RVB_Vert;RVB_Bleu))

   ` 2/ On définit une couleur dans 4D Chart 
$Couleur:=ch_Index vers couleur (7)  `bleu dans 4D, voir valeur différente de $Couleur
ch_Couleur_Vers_RVB ($Couleur)
$Rect2:=ch_Creer rectangle (Zone;220;5;420;200;5)
ch_FIXER TRAMAGE (Zone;$Rect2;3;ch_RGB vers couleur (RVB_Rouge;RVB_Vert;RVB_Bleu))

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Copyright © 2006 4D s.a. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.