![]() | Programming Guide | WideStudio/MWT Index Table of contents |
»ùÇà À̺¥Æ® ÇÁ·Î½ÃÀú:ÀÔ·Â ÇʵåÆí
EnterŰ·Î ƯÁ¤ÀÇ À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ½ÇÇàÇϱ⿡´Â
À̺¥Æ® ÇÁ·Î½ÃÀú¿¡¼ ƯÁ¤ÀÇ À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ±âµ¿Çϵµ·Ï ÇØ¹ý½Ã´Ù. ¿©±â¼´Â EnterŰÀÇ ÀÔ·ÂÀ¸·Î "ÀÔ·ÂÈ®Á¤"À̶ó´Â ¸íĪÀ» °¡Áö´Â À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ±âµ¿ÇÏ´Â ¿¹¸¦ µéÀÔ´Ï´Ù.import mwt # WSEV_KEY_HOOK Æ®¸®°Å(trigger)·Î WSCvifield ÀνºÅϽº¿¡ ¼³Á¤ÇÕ´Ï´Ù. def cbop(object): # (A) ÀԷµǿ©Àִ Ű¸¦ Ãëµæ. key = mwt.WSGIappKeyboard().getKey(); # (B) ۰¡ EnterŰÀ̸ç´Â if (key == mwt.WSK_Return): # "ÀÔ·ÂÈ®Á¤"À̶õ ¸íĪÀ» °¡Áö´Â À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ½ÇÇà. object.execProcedure("ÀÔ·ÂÈ®Á¤"); return mwt.WSGFfunctionRegister("chop",chop)(A)¿¡¼ ÀÚÆÇ Àü¿ª ÀνºÅϽº¿¡¼ Áö±Ý ÀԷµǿ©Àִ Ű¸¦ ÃëµæÇÕ´Ï´Ù.
(B)¿¡¼ EnterŰÀÎÁö¸¦ ÆÇº°Çؼ,±×·§´õ¶ó¸é (C)¿¡¼ "ÀÔ·ÂÈ®Á¤"À̶õ EP¸íĪÀ» °¡Áö´Â EP¸¦ ½ÇÇà½Ãŵ´Ï´Ù. ±× ÀÔ·ÂÈ®Á¤ ½ÇÇà À̺¥Æ® ÇÁ·Î½ÃÀú´Â EnterŰ¿¡À§ÇÑ ÀÔ·ÂÈ®Á¤ µ¿ÀÛÀ» ÇÒ °æ¿ì¿¡ ÀÚÁÖ ÀÌ¿ëµË´Ï´Ù.Ãʱ⶧ ÀÔ·ÂÀ¸·Î Àü¿¡ ÀԷ¹®ÀÚ¿À» Ä¡¿ì±â¿¡´Â
»õ·Î ÃÊÁ¡ÀÌ ¸Â¾Æ¼ ÀÔ·ÂÀ» ½ÃÀÛÇÒ °æ¿ì³ª »õ·Î ¸¶¿ì½º·Î Ŭ¸¯µÇ¿©¼ ÀÔ·ÂÀ» ½ÃÀÛÇÏ´Â °æ¿ì¿¡ Àü¿¡ ÀÔ·ÂÇÑ ¹®ÀÚ¿À» Ä¡¿ì´Â À̺¥Æ®ÇÁ·Î½ÃÀú¸¦ ÀÛ¼ºÇغ¾½Ã´Ù. ÁÖ·ÎÀÇ È帧Àº ´ÙÀ½°ú °°½À´Ï´Ù.
- (1) ÃÊÁ¡ÀÌ »õ·Î ¸ÂÀº °æ¿ì, Ä¡¿ï ÇÁ·¡±×(flag)¸¦ ¼¼¿î´Ù.
- (2) ¸¶¿ì½º°¡ Ŭ¸¯µÈ °æ¿ì, Ä¡¿ï ÇÁ·¡±×(flag)¸¦ ¼¼¿î´Ù.
- (3) Ű ÀÔ·ÂµÈ °æ¿ì, Ä¡¿ï ÇÁ·¡±×(flag)°¡ ¼¼¿öÁ®ÀÖÀ¸¸é Ä¡¿î´Ù.
- (1),(2),(3)ÀÇ ¼ºê À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ºÙ¿©³õ°í ÃʱâÈÇÑ´Ù.
import mwt # ÃÊÁ¡ÀÌ ¸Â¾ÆÀÖÀ¸¸é ÀÔ·Â Çʵ带 º¸ÁöÇÒ º¯¼ö focus_if = None # WSEV_FOCUS_CH Æ®¸®°Å(trigger)·Î ±âµ¿µÉ ¼ºêEP def _focus_ch_(object): # (A) ÃÊÁ¡ÀÌ À̵¿µÇ¿©¼ ¿Ô´Â°¡¸¦ Á¶»ç global focus_if if (focus_if != None and focus_if.getInstanceName() != object.getInstanceName() and object.getFocus() != mwt.False ): # (B)´Ù¸¥ °´Ã¼¿¡¼ ÃÊÁ¡ÀÌ À̵¿Çؿ °æ¿ì, # Ä¡¿ï ŸÀ̹ÖÀ» ÇÁ·¡±×(flag)¿¡ ¿Ü¾î³õ´Ù object.setVariantData("CLEAR TIMING",1); # (C)»õ·Î ÃÊÁ¡ÀÌ ¸ÂÀº°ÍÀÌ ÀÚ½Å. focus_if = object; return mwt.WSGFfunctionRegister("_focus_ch_",_focus_ch_) #WSEV_MOUSE_PRESS Æ®¸®°Å(trigger)·Î ±âµ¿µÇ´Â ¼ºêEP def _btn_press_(object): # (D) ¸¶¿ì½º·Î Ŭ¸¯µÇ¸ç´Â # Ä¡¿ï ŸÀ̹ÖÀ» ÇÁ·¡±×(flag)¿¡ ¿Ü¾î³õ´Ù object.setVariantData("CLEAR TIMING",1); object.setProperty("cursorPos",0); # (E)»õ·Î ÃÊÁ¡ÀÌ ¸ÂÀº°ÍÀÌ ÀÚ½Å. global focus_if focus_if = object; return mwt.WSGFfunctionRegister("_btn_press_",_btn_press_) # WSEV_KEY_PRESS Æ®¸®°Å(trigger)·Î ±âµ¿µÇ´Â ¼ºêEP def _key_hook_(object): # (F) Ű ÀÔ·ÂÇÒ¶§¿¡ Ä¡¿ï ŸÀ̹ÖÀΰ¡¸¦ Á¶»ç fl = object.getVariantData("CLEAR TIMING"); if (fl.getLong() == 1): key = mwt.WSGIappKeyboard().getKey(); # (G)Ä¡¿ï ŸÀַ̹ΠÀ̵¿ Ű¾Æ´Ï¸ç´Â if (key != mwt.WSK_Tab and key != mwt.WSK_Up and key != mwt.WSK_Down and key != mwt.WSK_Left and key != mwt.WSK_Right ): # (H)Áö¿ì´Ù object.setProperty("labelString",""); else: return; # (I)Ä¡¿ï ŸÀÌ¹Ö ÇÁ·¡±×(flag)¸¦ Ä¡¿î´Ù. object.setVariantData("CLEAR TIMING",0); return mwt.WSGFfunctionRegister("_key_hook_",_key_hook_) # Àü¿¡ ÀÔ·ÂµÈ ¹®ÀÚ¿À» Ä¡¿ï º»Ã¼ # WSEV_INITIALIZE Æ®¸®°Å(trigger)·Î ÀÔ·Â Çʵ忡 ¼³Á¤ÇÕ´Ï´Ù. def ifdclr(object): # ÃÊÁ¡ÀÌ ¸ÂÀº °æ¿ì¿¡ ±âµ¿µÇ´Â ¼ºêEP¸¦ ¼³Á¤ object.addProcedure("ac1","_focus_ch_",mwt.WSEV_FOCUS_CH); # ¸¶¿ì½º°¡ Ŭ¸¯µÇ¿´À»¶§ ±âµ¿µÇ´Â ¼ºêEP¸¦ ¼³Á¤ object.addProcedure("ac2","_btn_press_",mwt.WSEV_MOUSE_PRESS); # Ű ÀԷµǿ´À»¶§ ±âµ¿µÇ´Â ¼ºêEP¸¦ ¼³Á¤ object.addProcedure("ac3","_key_hook_",mwt.WSEV_KEY_HOOK); mwt.WSGFfunctionRegister("ifdclr",ifdclr)¸ÕÀú ÃÊÁ¡°ü·ÃÀÇ ¼ºêEP¿¡°üÇÏ¿© ¼³¸íÇÕ´Ï´Ù. ÃÊÁ¡ÀÌ »õ·Î ¸ÂÀº°ÍÀ» ¾Ë±âÀ§ÇØ Àü¿¡ ÃÊÁ¡ÀÌ ¸Â¾Ò´ø °´Ã¼¸¦ Á¤Àû(static)º¯¼ö¿¡ º¸ÁöÇØ³õ°Ú½À´Ï´Ù.
(A)¿¡¼´Â ¿ì¼± º¸ÁöÇØ³õÀº °´Ã¼¿Í ÀÚ½ÅÀÌ ´Ù¸¥ °´Ã¼Àΰ¡¸¦ Á¶»çÇÕ´Ï´Ù. ´Ù¸£¸é »õ·Î ÃÊÁ¡ÀÌ ¸ÂÀº°ÍÀ» ÀǹÌÇØ¼, (B)¿¡¼ Ä¡¿ï ÇÁ·¡±×(flag)¸¦ ¼¼¿ö³õ½À´Ï´Ù. ±× ´ÙÀ½¿¡ (C)¿¡¼ ÀÚ½ÅÀ» ±× Á¤Àû(static) º¯¼ö¿¡ º¸ÁöÇÕ´Ï´Ù.
´ÙÀ½¿¡´Â ¸¶¿ì½ºÀÇ Å¬¸¯°ü·Ã¿¡ ¼ºêEP¿¡°ü¿¡¼ ¼³¸íÇÕ´Ï´Ù. (D)¿¡¼ Ä¡¿ï ÇÁ·¡±×¸¦ ¼¼¿ö¼ ÀÔ·Â Ä«¼³À» ¼±µÎ·Î ¼³Á¤ÇÕ´Ï´Ù. ±×ÈÄ¿¡ (E)¿¡¼ ÀÚ½ÅÀ» ÃÊÁ¡º¸ÁöÀÇ Á¤Àû(static) º¯¼ö¿¡ º¸ÁöÇÕ´Ï´Ù.
´ÙÀ½¿¡´Â Ű ÀԷ°ü·ÃÀÇ ¼ºêEP¿¡ ´ëÇØ¼ ¼³¸íÇÕ´Ï´Ù. Ű ÀԷ°ü·ÃÀÇ ¼ºêEP¿¡¼´Â Ä¡¿ï ÇÁ·¡±×(flag)¸¦ ¼¼¿ï °æ¿ì, ¹®ÀÚ¿¸¦ Ä¡¿ö¼ ±× Ä¡¿ï ÇÁ·¡±×(flag)¸¦ Ä¡¿ó´Ï´Ù. ¿ì¼± (F)¿¡¼ Ä¡¿ï ÇÁ·¡±×(flag)°¡ ¼¼¿öÀúÀִ°¡¸¦ Á¶»çÇÕ´Ï´Ù. (G)¿¡¼´Â À̵¿ ۸¦ ÀÔ·ÂÇѰÍÀ¸·Î Ä¡¿öÁöÁö¾Êµµ·Ï ±× ۸¦ ÆÇº°Çؼ, (H)·Î Ä¡¿ö¼ (I)·Î Ä¡¿ï ÇÁ·¡±×(flag)¸¦ Ä¡¿ó´Ï´Ù.
Copyright(C) WideStudio/MWT Development Team, 1999-2005 | Last modified: Jul 31, 2005 |