You are here

변수 및 배열 사용시 질문입니다.

지난번 답변으로 거의 마무리 단계까지 진행이 됐습니다. 감사합니다.

한 파일 에서
command "Save File" -command {savefile lb en}

frame .f1
label .f1.l0 -textvariable lb(0) -text "A"
entry .f1.e0 -textvariable en(0)
label .f1.l1 -textvariable lb(1) -text "B"
entry .f1.e1 -textvariable en(1)

proc savefile {l e} {
......
}

이런식으로 라벨과 엔트리에 변수명을 따로 지정하고
배열 lb와 en를 넘기면 문제가 안생깁니다.

그런데
proc MAIN::create { } {
command "Save File" -command {savefile lb en}
}
=========== 서로 파일이 다릅니다. =======================

namespace eval ndr1 {
}

proc ndr1::_paned { parent } {
set pw [PanedWindow $parent.pw -side top]
set pane [$pw add -minsize 100]

set sw [ScrolledWindow $pane.sw -relief sunken -borderwidth 2]
set sf [ScrollableFrame $sw.f -yscrollcommand ".y2 set"]
$sw setwidget $sf
scrollbar .y2 -orient vertical -command "$sw.f yview"
set subf [$sf getframe]

set A0 [label $subf.l0 -textvariable lb(0) -text "A"]
set B0 [entry $subf.e0 -textvariable en(0)]
set A1 [label $subf.l1 -textvariable lb(1) -text "B"]
set B0 [entry $subf.e1 -textvariable en(1)]
}

============ 서로 파일이 다릅니다. ======================
proc savefile {l e} {
......
}

이상황에서 변수를 넘기는 것은 둘째 문제고
lb와 en의 배열 자체가 생성이 안됩니다. ㅠㅠ
-textvariable 옵션이 인식이 안되는거 같습니다.

label $subf.l0 -textvariable A -text "A"라고 설정한후

pust $A라고 하면 A가 읽을 수 없고 없는 값이라고 나옵니다.
위의 상황에서 라벨과 엔트리의 변수 설정을 어떻게 해야하는지 그리고

proc savefile로 배열 lb와 en을 잘 전달하고 싶습니다. 도와주세요