probleme list-view et fonction
sebastien28-Jan-2009/0:30:20+1:00
bonjour a tous ,
j'ai un petit souci avec list-view
j'ai créé une fonction qui efface le colonne cela fonction quand j'utilise la colonne , mais rien ne se passe si j'utilise un variable contenant le nom de la colonne
ex
REBOL []
do %list-view.r
supprimercolonne: func [colonne][li/remove-column colonne ]
view layout [
li: list-view 200x100 with [
data-columns: [a b c]
data: [[1 2 3][4 5 6]]
]

button "supprimer" [
          supprimercolonne['c]
]
]

dans ce cas c'est ok
par contre je suis coince
si je veux que 'c soit dans une variable
button "supprimer" [ macol: 'c
          supprimercolonne[macol]
]
j'ai une erreur

idem avec
button "supprimer" [ macol: 'c
          supprimercolonne[macol]
]

et avec
button "supprimer" [ macol: c
          supprimercolonne['macol]
]

pouvez vous m'aider et me dire pourquoi le '
merci
sebastien28-Jan-2009/9:05:06+1:00
c'est bon j'ai trouvé ma reponse dans le post de ZeBrain

mais pouvez vous m'expliquer à quoi sert le ' dans l'appel de certaine fonction
Didec28-Jan-2009/12:22:21+1:00
A ne pas réduire le paramètre avant l'appel de la fonction :
f1: func [a][print a]
f2: func ['a][print a]
f3: func ['a][print :a]
f4: func ['a][print get a]

; divers tests :
; 1) avec une valeur directe
>> f1 "toto"
toto
>> f2 "toto"
toto
>> f3 "toto"
toto
>> f4 "toto"
** Script Error: get expected word argument of type: any-word object none
** Where: f4
** Near: print get a

; 2) on passe par une "variable" (valeur indirecte) :
>> a: "titi"
== "titi"
>> f1 a
titi
>> f2 a
a
>> f3 a
a
>> f4 a
titi

; 3) valeur indirecte, mais explicitement non réduite (indépendament de ce qui est défini dans la fonction) :
>> f1 'a
a
>> f2 'a
a
>> f3 'a
a
>> f4 'a
titi

Ce genre de petits tests est simple et vite fait. Je vous invite à expérimenter ainsi des combinaisons pour comprendre, petit à petit, les subtilités de ce merveilleux (mais subtile) langage.

Dans ton cas, il fallait passer "macol" directement et non pas en le mettant dans un block!

Login required to Post.


Powered by RebelBB and REBOL 2.7.8.4.2