- This topic has 1개 답변, 2명 참여, and was last updated 10 years, 9 months 전에 by Sangwoo.
-
글쓴이글
-
-
익명비활성
안녕하세요 저번에 수업 들었던 암센터 연구원입니다.ㅎㅎ
다름이 아니라 CASE문에 관한 질문을 드리고자 이렇게 글을 적습니다.
일단 제가 짠 프로그램 일부 입니다.
PRO read_rec_event, event
widget_control, event.top, get_uvalue=infoptr
info=*infoptr
WIDGET_CONTROL, event.id, GET_UVALUE = eventval
tmp=fltarr(336,336)CASE eventval of
‘SLIDE’:BEGIN
WIDGET_CONTROL, event.id, GET_VALUE = s
tmp[*,*]=info.fv[0,s-1,*,*]
img = congrid(tmp,336,336)
info.draw = widget_draw(info.base1, xsize=336, ysize=336)
wset, info.draw_value & tvscl, img
END‘BUTTON’:BEGIN
main = WIDGET_BASE(col=5,TITLE=’b-value’)
for i=0, 9 do begin
main1= WIDGET_BASE(main,row=1,/align_center)
tmp[*,*]=info.fv[i,s-1,*,*]
img1 = congrid(tmp,336,336)
draw1 = widget_draw(main1, xsize=336, ysize=336)
WIDGET_CONTROL, main , /realize
widget_control, draw1, get_value=draw_value1
wset, draw_value1 & tvscl, img1
endfor
END
ENDCASE
ENDread_rec profile의 event profile 부분입니다. read_rec에는 WIDGET_SLIDER 와 WIDGET_BUTTON 함수가 쓰였고 각각의 uvalue는 ‘SLIDE’ 와 ‘BUTTON’ 입니다. slider를 넘기면 slice number에 따른 이미지가 나오고 button을 누르면 각 slice number의 다른 10개의 이미지가 나오는 프로그램입니다.
여기에서 질문은 case문 안에 첫번째 밑줄 부분에서 get_value를 통해 slider number를 s라는 변수로 받고 있습니다. 이걸 두번째 밑줄 부분에도 적용을 시키고 싶은데 다른 조건(‘SLIDE’와 ‘BUTTON’)이기 때문에 변수가 적용이 되질 않습니다. 혹시 두 조건에 적용 시킬수 있는 좋은 방법이 있는지 궁금해서 적어봤습니다.
답변 부탁드리고 수고하세요^^ -
Sangwoo회원
안녕하세요. 이 경우는 이벤트를 발생시킨 당사자 위젯에서만 값을 가져오는 방식의 한계입니다. 메인루틴에서 슬라이더 및 버튼 위젯을 공유정보 구조체에 넣어두고 포인터를 연결해놓은 다음, 이벤트 처리루틴에서 두 위젯의 정보를 끌어오는 방식으로 가야 하겠지요.
-
-
글쓴이글