Le fonction prends une couleur en parametre, et retourne une couleur
- a copier dans la section remote.
- Utilisation : %NewColor = $getColor( %OldColor ) Renvoie un code CtrlK text , fond CtrlB ctrlU.
- Demonstration d'une Boite de dialogue qui retourne une valeur.
Source / Exemple :
;---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
; Fonction GetColor
;---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
alias getColor {
/set %GetColor.Color $$1
/return $$dialog( DialColor, TabColor, -2 )
}
dialog TabColor {
title "Couleur"
size -1 -1 294 140
box "",201,4 92 286 44
button "&Valider",001,32 106 74 24,ok,default
button "&Annuler",002,110 106 74 24,cancel
button "&Aide",003,188 106 74 24
edit , 010,0 140 100 24,result
box "Ecriture",202,4 4 140 44
combo 101,12 20 124 100,drop
box "Fond",203,4 48 140 44
combo 102,12 64 124 100,drop
box "Options",204,150 4 140 44
check "&Gras",103,158 24 62 14 %GetColor.Color.g
check "&Souligné",104,226 24 62 14 %GetColor.Color.s
box "",205,150 48 140 44
button "&Tester",105,158 62 124 24
}
on *:dialog:DialColor:init:00:{
/did -r DialColor 101
/did -i DialColor 101 1 Normal
/did -i DialColor 101 2 Blanc
/did -i DialColor 101 3 Noir
/did -i DialColor 101 4 Bleu
/did -i DialColor 101 5 Vert
/did -i DialColor 101 6 Rouge pâle
/did -i DialColor 101 7 Brun
/did -i DialColor 101 8 Mauve
/did -i DialColor 101 9 Orange
/did -i DialColor 101 10 Jaune
/did -i DialColor 101 11 Vert pâle
/did -i DialColor 101 12 Cyan
/did -i DialColor 101 13 Cyan pâle
/did -i DialColor 101 14 Bleu pâle
/did -i DialColor 101 15 Rose
/did -i DialColor 101 16 Gris
/did -i DialColor 101 17 Gris pâle
/did -r DialColor 102
/did -i DialColor 102 1 Normal
/did -i DialColor 102 2 Blanc
/did -i DialColor 102 3 Noir
/did -i DialColor 102 4 Bleu
/did -i DialColor 102 5 Vert
/did -i DialColor 102 6 Rouge pâle
/did -i DialColor 102 7 Brun
/did -i DialColor 102 8 Mauve
/did -i DialColor 102 9 Orange
/did -i DialColor 102 10 Jaune
/did -i DialColor 102 11 Vert pâle
/did -i DialColor 102 12 Cyan
/did -i DialColor 102 13 Cyan pâle
/did -i DialColor 102 14 Bleu pâle
/did -i DialColor 102 15 Rose
/did -i DialColor 102 16 Gris
/did -i DialColor 102 17 Gris pâle
if ( %GetColor.Color == $null ) {
/did -c DialColor 101 1
/did -c DialColor 102 1
/did -u DialColor 103
/did -u DialColor 104
}
else {
; Ctrl K et virgule
if (( isin %GetColor.Color ) && ( $chr( 44 ) isin %GetColor.Color )) {
/var %GetColor.Brut $remove( %GetColor.Color, ,, )
/var %pos $pos( %GetColor.Brut, $chr( 44 ),1 )
; /echo -s %GetColor.Brut - %pos - $right( %GetColor.Brut, $calc( $len(%GetColor.Brut) - %pos ) )
/did -c DialColor 101 $calc( $left( %GetColor.Brut, $calc( %pos - 1 )) + 2 )
/did -c DialColor 102 $calc( $right( %GetColor.Brut, $calc( $len(%GetColor.Brut) - %pos ) ) + 2 )
}
;ctrl k
else if ( isin %GetColor.Color ) {
/did -c DialColor 101 $calc( $remove( %GetColor.Color,,, ) + 2 )
/did -c DialColor 102 1
}
else {
did -c DialColor 101 1
}
; Ctrl g gras
if ( isin %GetColor.Color ) { did -c DialColor 103 }
else { did -u DialColor 103 }
; Ctrl u souligné
if ( isin %GetColor.Color ) { did -c DialColor 104 }
else { did -u DialColor 104 }
}
if ( $did( DialColor,101 ).sel == 1 ) { did -bu DialColor 102 1 }
else { did -e DialColor 102 }
}
on *:dialog:DialColor:sclick:101:{
; Si pas d ecriture, pas de fond
if ( $did( 101 ).sel == 1 ) {
/did -bu DialColor 102 1
}
else {
/did -e DialColor 102
}
}
; Test ecriture DialColor
on *:dialog:DialColor:sclick:105: {
/echo $Color( info2) -a $did( 10 ).text $+ [Test d'écriture]
}
; resultat ...
on *:dialog:DialColor:*:*: {
/did -ra DialColor 010 $iif( $did( 101 ).sel != 1, $+ $calc( $did( 101 ).sel - 2 )) $+ $iif( $did( 102 ).sel != 1, $chr( 44 ) $+ $calc( $did( 102 ).sel - 2 )) $+ $iif( $did( 103 ).state, ) $+ $iif( $did( 104 ).state, )
}
Conclusion :
- 1° Ce n'est pas la premiere fois que vous voyez une Dlg pour la couleur.
- 2° Ce n'est pas la premiere fois que vous voyez une fonction de couleur.
- 3°
Je vous evite donc de commenté betement mon source et vous invite a etre un peu positif dans vos commentaires.
- 4° J'utilise une boite de dialogue qui renvoie une valeur grace a : edit , 010,0 140 100 24,result. et l'event : on *:dialog:DialColor:*:*: {
/did -ra DialColor 010 $iif( $did( 101 ).sel != 1, $+ $calc( $did( 101 ).sel - 2 )) $+ $iif( $did( 102 ).sel != 1, $chr( 44 ) $+ $calc( $did( 102 ).sel - 2 )) $+ $iif( $did( 103 ).state, ) $+ $iif( $did( 104 ).state, )
} Ca peut servir de didacticiel.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.