1
我期待建立一個功能近期開啓文件添加到菜單和命令(事件)時,點擊打開它,但一個錯誤出現錯誤無法讀取「文件名」:沒有這樣的變量
錯誤:
Error can't read "filename" : no such variable
代碼:
proc add_Recentfiles {filename} {
global recentFiles
...
$m insert $recentFiles(index) \
command -label $labelText -command {fileOpen $filename}
...
}
proc fileOpen { filename } {
#refresh textbox
.textarea.txt delete 0.0 end
set fileid [open $filename r]
set data [read $fileid]
.textarea.txt insert end $data
.textarea.l configure -text $filename
addRecentFile $filename
close $fileid
}
謝謝,你能解釋一下爲什麼我們需要[list ..]使它工作嗎? –
嗯,不完全對吧?該命令在全局範圍內進行評估,所以第一種情況下的問題是沒有這樣的全局變量。如果存在的話,它的價值將被使用。在第二種情況下,命令調用已經有了替代變量,所以它就像在全局範圍中一樣被執行。 –