CASE문에 관한 질문입니다.

게시판 IDL Q&A CASE문에 관한 질문입니다.

1 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #937 Reply
      익명
      비활성

      안녕하세요 저번에 수업 들었던 암센터 연구원입니다.ㅎㅎ

      다름이 아니라 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
      END

      read_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’)이기 때문에 변수가 적용이 되질 않습니다. 혹시 두 조건에 적용 시킬수 있는 좋은 방법이 있는지 궁금해서 적어봤습니다.
      답변 부탁드리고 수고하세요^^

    • #941 Reply
      Sangwoo
      회원

      안녕하세요. 이 경우는 이벤트를 발생시킨 당사자 위젯에서만 값을 가져오는 방식의 한계입니다. 메인루틴에서 슬라이더 및 버튼 위젯을 공유정보 구조체에 넣어두고 포인터를 연결해놓은 다음, 이벤트 처리루틴에서 두 위젯의 정보를 끌어오는 방식으로 가야 하겠지요.

1 답변 글타래를 보이고 있습니다
'CASE문에 관한 질문입니다.'에 답변달기
글쓴이 정보: