You are here

proc내에서 만든 버튼의 command에서 변수값 참조가 안되는 문제

안녕하세요. 하루에 한 건 문의를 드리네요. ^^;;
아래와 같이 toplevel로 새로운 창을 띄우는 proc내에서 여러 레이블과 엔트리, scale바 등을 만들었습니다.
proc를 호출할 때 넘겨준 x, y 값들과 proc내에서 만든 엔트리 변수 query, scale바 변수 rd_value가
button을 눌렀을 때 실행되는 command에서 puts "$query, $x, $y, $r" 와 같이 했으나
에러가 발생합니다. "can't read query; no such variable..."이라고...
지역/Global 변수 처리 문제인듯 한데...
어떻게 해야 정상적인 값의 전달을 할 수 있을까요?
그리고, 또 궁금한 것은, proc 호출할 때 넘겨준 x, y값들을 widget만들 때는 값을 제대로 참조하는데
왜 버튼의 command 내에서만 참조가 안되는지도 궁금합니다.

package require Tk
package require Tcl

proc MakeNearSearchWin {x y} {
       
        toplevel .nearSearchWin
        wm title .nearSearchWin "주변 POI 검색"

        set nearSearchWin_Width 220
        set nearSearchWin_Height 200

        wm geometry .nearSearchWin ${nearSearchWin_Width}x${nearSearchWin_Height}+0+0

        set fieldFrame [ttk::frame .nearSearchWin.f]
        pack $fieldFrame

        set lbl_cX [ttk::label $fieldFrame.lbl_cX -text "X좌표" -relief flat]
        set search_X [ttk::label $fieldFrame.search_X -width 20 -relief groove -text $x]
        grid $lbl_cX $search_X -padx 4 -pady 4

        set lbl_cY [ttk::label $fieldFrame.lbl_cY -text "Y좌표" -relief flat]
        set search_Y [ttk::label $fieldFrame.search_Y -width 20 -relief groove -text $y]
        grid $lbl_cY $search_Y -padx 4

        set query ""
        set lbl_Query [ttk::label $fieldFrame.lbl_Query -text "검색어" -relief flat]
        set search_Query [ttk::entry $fieldFrame.search_Query -width 20 -state normal -textvariable query]
        grid $lbl_Query $search_Query -padx 4 -pady 4

        #-------------------- 반경 설정  Scale-bar

        set rd_value 10
        set lbfr_radius [ttk::labelframe $fieldFrame.lbfrrd -text "반경 설정" -width 200 -padding 4]
        grid $lbfr_radius -columnspan 2
        set rd_sc_bar [scale $lbfr_radius.rdscb -relief raised \
                -sliderlength 20 \
                -orient horizontal \
                -from 10 -to 4000 \
                -variable rd_value \
                -width 20 \
                -length 180 \
                -resolution 10]
        pack $rd_sc_bar -pady 4

        # 검색 요청 파라미터 : Query, X, Y, Radius, isarea=1, sr=DIS, option=1

        set button_search [button $fieldFrame.b -text "검   색" -width 26 -bd 4 -command {
                puts "$query, $x, $y, $rd_value"
        }]
        grid $button_search -columnspan 2 -pady 4
}

MakeNearSearchWin 1234 5678