Question

Je veux faire plusieurs objets, tous avec les mêmes paramètres, j'ai donc essayé de les stocker dans un proc que les rendements eux. Mais l'interprète évalue le résultat de retour comme un paramètre, au lieu de plusieurs. mon proc est:

proc element_param {} {
    return "-filled 1\
        -visible 1\
        -linewidth 1\
        -linecolor yellow\
        -fillcolor yellow\
        -relief roundraised\
        -linewidth 2"
}

et je l'utilise avec:

$this/zinc add rectangle 1 [list "100" "100" "200" "200"] [element_param]

Comment puis-je les transforme en plusieurs paramètres différents?

Était-ce utile?

La solution

Avec tcl 8.5 et ci-dessus utilisent le {*} opérateur pour élargir la liste des paramètres:

$this/zinc add rectangle 1 $coords {*}[element_param]

avec les versions précédentes, vous pouvez développer les listes en utilisant eval:

eval [linsert [element_param] 0 $this/zinc add rectangle 1 $coords]

ce qui est équivalent.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top