TIMER EVENT에서의 이벤트 순서
최근 포스팅에서 WIDGET에서 사용할 수 있는 TIMER EVENT를 소개했는데요. 이번 시간에는 이벤트가 일어나는 순서에 대해서 이야기 해보려고 합니다. 다음 코드는 지난 시간에 사용했던 코드 중에서 다음과 같이 시간을 설정해주는 부분과, 이벤트가 실행되는 부분입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
pro auto_5s, event ; 5초의 시간을 설정해주는 부분입니다.. widget_control, event.top, get_uvalue=stash slt_time=5 stash.slt_time=slt_time widget_control, event.top, set_uvalue=stash widget_control, event.top, timer=0 help, event now_time=systime(/utc) mod_now_time=bin_date(now_time) print, 'AUTO DATA LOADING START TIME : ' + strtrim(string(mod_now_time[0]),2) + '년 ' + strtrim(string(mod_now_time[1]),2) + '월 ' + $ time[2]),2) + '일 ' + strtrim(string(mod_now_time[3]),2) + '시 ' + strtrim(string(mod_now_time[4]),2) + '분 ' + $ strtrim(string(mod_now_time[5]),2) + '초' end |
1 2 3 4 5 6 7 8 9 10 |
pro auto_event, event ; 이벤트가 실행되는 부분입니다. widget_control, event.top, get_uvalue=stash IF (TAG_NAMES(event, /STRUCTURE_NAME) EQ 'WIDGET_TIMER') THEN BEGIN now_time=systime(/utc) mod_now_time=bin_date(now_time) print, mod_now_time WIDGET_CONTROL, event.TOP, TIMER=stash.slt_time endif end |
WIDGET_CONTROL, event.TOP, TIMER=stash.slt_time 이라는 부분은, auto_5s라는 프로시저에서 설정된 slt_time에 맞추어 XMANAGER에 의해서 다음 ‘slt_time’초 후에 반복적으로 이벤트를 실행하게 됩니다. 주의할 점은 …