Frage

Ich möchte mehrere Objekte erstellen, alle mit den gleichen Parametern, also habe ich versucht, sie in einem Proc zu speichern, der sie zurückgibt. Der Interpreter bewertet das Rückkehrergebnis jedoch als einen Parameter anstelle von mehreren. Mein Proc ist:

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

Und ich benutze es mit:

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

Wie verwandle ich sie in verschiedene Parameter?

War es hilfreich?

Lösung

Verwenden Sie mit TCL 8.5 und oben den {*} -Operator, um die Liste der Parameter zu erweitern:

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

Mit früheren Versionen können Sie Listen mithilfe von EVAL erweitern:

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

Welches ist gleichwertig.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top