Plugins : gestion RVB d'une couleur définie dans 4D
Date de publication : 28/12/2006
Par
Thomas Schlumberger (Responsable Intl Tech Support)
| code 4D |
` 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
| code 4D |
` 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 definie 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").
| code 4D |
` Ces deux exemples vont donner une couleur equivalente 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 differente 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)) |


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