![]() | Programming Guide | WideStudio/MWT Index Table of contents |
»ùÇà À̺¥Æ® ÇÁ·Î½ÃÀú:¶óº§Æí
¸¶¿ì½º·Î ¼±Åð¡´ÉÇÑ ¶óº§·Î Çϱ⿡´Â
À̺¥Æ® ÇÁ·Î½ÃÀú¿¡ ÀÖ¾î¼ °¡Àå ±âº»ÀûÀÎ ¸¶¿ì½ºÀÇ µ¿ÀÛ¿¡ ¹ÝÀÀÇÏ´Â À̺¥Æ® ÇÁ·Î½ÃÀúÀÇ »ùÇÃÀÔ´Ï´Ù. ¶óº§À§¿¡¼ ¸¶¿ì½º°¡ Ŭ¸¯µÉ¶§¸¶´Ù ¼ýÀÚ°¡ ¿Ã¶ó°¡°ÔµÇ´Â À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ÀÛ¼ºÇغ¾½Ã´Ù.// WSEV_MOUSE_PRESS(MOUSE-PRESS)Æ®¸®°Å(trigger)·Î ¶óº§¿¡ ¼³Á¤ÇÕ´Ï´Ù. public class chop { protected static void chop(WSCbase object){ //(0)¸¶¿ì½º ´ÜÃß1¿Ü´Â µÇµ¹¾Æ°¨ if ((Mwt.WSGIappMouse().getMouseStatus() & Mwt.WS_MOUSE_BTN1) == 0){ return; } // (A)userValue ¼Ó¼º¿¡ ±â¾ïµÇ¿©ÀÖ´Â ¼ýÀÚ¸¦ Ãëµæ WSCvariant value = object.getProperty("userValue"); // (B)±× ¼ýÀÚ¸¦ ¼¼¾î ¿Ã¸² long val = value.getLong() + 1; // (C)±× ¼ýÀÚÀÇ Ç¥½Ã object.setProperty("labelString",val); // (D) userValue ¼Ó¼º¿¡ ¿Ã¸° ¼ýÀÚ¸¦ ±â¾ï½ÃÅ´ object.setProperty("userValue",val); } }ÀÌ À̺¥Æ® ÇÁ·Î½ÃÀú´Â WSCvbtn,WSCvlabel µîÀÇ labelString ¼Ó¼ºÀ» °¡Áö´Â °´Ã¼¿¡ MOUSE-PRESS Æ®¸®°Å(trigger)·Î ¼³Á¤ÇÕ´Ï´Ù. °´Ã¼À§¿¡¼ ¸¶¿ì½º°¡ Ŭ¸¯µÉ¶§¸¶´Ù ÀÌ ÇÔ¼ö´Â ±âµ¿µË´Ï´Ù. À̺¥Æ® ÇÁ·Î½ÃÀú°¡ ±âµ¿µÇ¸é (0)¿¡¼ ¸¶¿ì½º ´ÜÃßÀÇ ÆÇÁ¤À» ½ÇÇàÇÏ°í ¸¶¿ì½º ´ÜÃß1¿ÜÀÇ ´ÜÃß¿´´õ¶ó¸é µÇµ¹¸³´Ï´Ù. ¸¶¿ì½º ´ÜÃß ÆÇÁ¤ÀÇ Âü°í·Î ÇØ ÁֽʽÿÀ.
´ÙÀ½¿¡ (A)·Î userValue¼Ó¼º¿¡ ±â¾ïµÇ¿©ÀÖ´Â ¼ýÀÚ¸¦ ÃëµæÇÕ´Ï´Ù. userValue ¼Ó¼ºÀÇ ÃʱâÄ¡´Â 0À¸·Î, »ç¿ëÀÚ°¡ °ªÀ» ÀÚÀ¯·ÎÈ÷ ÁöÁ¤Çؼ º¸ÁöÇÒ¼ö ÀÖ½À´Ï´Ù. ¿©±â¼ °´Ã¼¿¡ ±â¾ï½ÃÄѳõÀº°ÍÀº ´Ù¼öÀÇ °´Ã¼¿¡ ºÙ¿©³õ¿´À»¶§ °¢°¢ÀÇ ¶óº§ÀÇ ¼ýÀÚ°¡ ¼¯¿©ÁöÁö¾Êµµ·Ï ÇϱâÀ§ÇؼÀÔ´Ï´Ù. ¹Ý´ë·Î Á¤Àû º¯¼öµî¿¡¼ º¸ÁöÇϵµ·Ï ÀÛ¼ºÇÏ¸é ¸ðµç ¶óº§¿¡¼ ÇϳªÀÇ ¼ýÀÚ¸¦ »ç¿ëÇÑ Ç¥½Ã¸¦ ÇÒ¼öÀÖ½À´Ï´Ù.
´ÙÀ½¿¡ (B)¿¡¼ ±× ¼ýÀÚ¸¦ ¼¼¾î ¿Ã·Á (C)¿¡¼ Ç¥½ÃÇÕ´Ï´Ù. (D)·Î Ç¥½ÃÇÑ ¼ýÀÚ¸¦ userValue¼Ó¼º¿¡ º¸ÁöÇÏ¿©, ´ÙÀ½¹øÀÇ À̺¥Æ® ÇÁ·Î½ÃÀú ±âµ¿¿¡ ÁغñÇÕ´Ï´Ù.
Ȥ½Ã ÀÌ ÇÁ·Î½ÃÀú°¡ Æ®¸®°Å(trigger),MOUSE-IN ·Î ºÙ¿©³õÀÎ °æ¿ì´Â, ¸¶¿ì½º°¡ ÃâÀÔÇÑ È¸¼ö¸¦ Ç¥½ÃÇϰԵ˴ϴÙ.
¸¶¿ì½º·Î ¼±Åð¡´ÉÇÑ ¶óº§·Î Çϱ⿡´Â
´ÙÀ½Àº ¼±Åð¡´ÉÇÑ ¶óº§À» ÀÛ¼ºÇغ¾½Ã´Ù. ¶óº§ÀÌ ¼±ÅõȰÍó·³ º¸À̵µ·Ï »öÀ» º¯È½ÃÄѺ¾½Ã´Ù. ¿©±â¼´Â userValue ¼Ó¼ºÀÇ ´ë½Å set/getVariantData() ÇÔ¼ö¸¦ ½á¼ ¼±ÅûóŸ¦ º¸ÁöÇÕ´Ï´Ù.// WSEV_MOUSE_PRESS(MOUSE-PRESS)Æ®¸®°Å·Î ¶óº§¿¡ ¼³Á¤ÇÕ´Ï´Ù. public class chop { protected static void chop(WSCbase object){ //(A) getVariantData() ·Î ±â¾ïÇÏ´Â °ªÀ» Ãëµæ WSCvariant value = object.getVariantData("STATUS"); //(B) value °¡ 0À̸ç´Â ¼±ÅûóÅ·Î, 1À̸ç´Â ¿ø·¡ Ç¥½Ã»óÅ·ΠµÇµ¹¸°´Ù if (value.getLong() == 0){ //(C)¿ù·¡»ö±ò¸íĪ(¹®ÀÚ¿)À» userString ·Î ±â¾ïÇØ³õ´Ù WSCvariant color = object.getProperty("backColor"); object.setProperty("userString",color); //(D)¼±ÅûöÀÇ Ç¥½Ã»óÅ·ΠÇÑ´Ù object.setProperty("backColor","slategray4"); //(E)»óŸ¦ ±â¾ïÇÑ´Ù object.setVariantData("STATUS",1); }else{ //(F)¿ø·¡»öÀ» ²¨³½´Ù WSCvariant color = object.getProperty("userString"); //(G)¿ø·¡»öÀÇ Ç¥½Ã»óÅ·ΠÇÑ´Ù object.setProperty("backColor",color); //(H)»óŸ¦ ±â¾ïÇÑ´Ù object.setVariantData("STATUS",0); } } }ÀÌ À̺¥Æ® ÇÁ·Î½ÃÀú´Â WSCvbtn,WSCvlabel µîÀÇ labelString ¼Ó¼ºÀ» °¡Áö´Â °´Ã¼¿¡ MOUSE-PRESS Æ®¸®°Å(trigger)·Î ¼³Á¤ÇÕ´Ï´Ù.
À̺¥Æ® ÇÁ·Î½ÃÀú°¡ ±âµ¿µÇ¸é (A)¿¡¼ setVariantData() ÇÔ¼ö°¡ ±â¾ïÇÏ´Â ¼ýÀÚ¸¦ ÃëµæÇÕ´Ï´Ù. set/getVariantData() ÇÔ¼öÀÇ ÃʱâÄ¡´Â0À¸·Î »ç¿ëÀÚ°¡ °ªÀ» ÀÚÀ¯·ÎÈ÷ ÁöÁ¤Çؼ º¸ÁöÇÒ¼öÀÖ½À´Ï´Ù. ÁÁÀº À̸§À» ºÙ¿©¼ ÀÓÀÇÀÇ °ªÀ» void* ÇüÀ¸·Î º¸ÁöÇÒ¼ö°¡ ÀÖ½À´Ï´Ù.
´ÙÀ½¿¡ (B)¿¡¼ ±× °ªÀ» ÆÇº°ÇÏ´Ù°¡, (C)¿¡¼ ´ÙÀ½¹ø¿¡ ¿ø·¡»öÀ¸·Î Ç¥½Ã¸¦ µÇµ¹¸®±â¿¡ ¼Ó¼º userString ·Î ±â¾ïÇØ³õ½À´Ï´Ù. ´ÙÀ½ (D) ¿¡¼ ¼±ÅûöÀ¸·ÎÀÇ Ç¥½Ã»óÅ·ΠÇÏ´Ù°¡, (E)·Î¼ ¼±ÅûóŸ¦ ´Ù½Ã º¸ÁöÇÕ´Ï´Ù.
¿ø·¡»öÀ¸·Î µÇµ¹¸®´Â ´Ü°è´Â (F)·Î¼ º¸ÁöÇØ³õÀº ¿ø·¡ Ç¥½Ã»öÀ» ÃëµæÇØ¼ (G)·Î ±× »öÀ» ¹Ý¿µÇÕ´Ï´Ù. ±×·¡¼ (H)¿¡¼ ¶Ç ¼±ÅûóŸ¦ º¸ÁöÇÕ´Ï´Ù.¸¶¿ì½º·Î °Á¶Ç¥½ÃÇÏ´Â ¶óº§·Î Çϱ⿡´Â
¸¶¿ì½ºÀÇ ÃâÀÔÀ¸·Î °Á¶Ç¥½ÃÇÏ´Â À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ¸¸µé¾îº¾½Ã´Ù. °´Ã¼À§¿¡ ¸¶¿ì½º°¡ µé¾î¿À¸é °Á¶Ç¥½ÃÇϰí, ¸¶¿ì½º°¡ ³ª°¡¸é µÇµ¹¾Æ°¡´Â À̺¥Æ® ÇÁ·Î½ÃÀú·Î µË´Ï´Ù.
¿©±â¼ Áß¿äÇѰÍÀº ¸¶¿ì½º°¡ µé¾î°£ °æ¿ì¿¡ ¹ß»ýÇÏ´Â Æ®¸®°Å(trigger)¿Í ¸¶¿ì½º°¡ ³ª°£ °æ¿ì¿¡ ¹ß»ýÇÏ´Â Æ®¸®°Å(trigger)¿¡ °¢°¢ À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ¼³Á¤ÇÏ´Â À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ÀÛ¼ºÇÑ´Ù´Â Á¡¿¡ ÀÖ½À´Ï´Ù.
Áï ÃʱâÈ·Î À̺¥Æ® ÇÁ·Î½ÃÀú°¡ ±âµ¿µÇ¿©, ±×¼Ó¿¡¼ »õ·Î¿î À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ¼³Á¤ÇÔÀ¸·Î¼ º¹¼öÀÇ À̺¥Æ® ÇÁ·Î½ÃÀúÀÇ ¼³Á¤À» ÇϳªÀÇ À̺¥Æ® ÇÁ·Î½ÃÀúÀÇ ¼³Á¤À¸·Î ½ÇÇöÇÏ´Â Á¡ÀÔ´Ï´Ù.// in subop1.java //¼ºêEP1 // ¸¶¿ì½º µé¾î public class subop1 { protected static void subop1(WSCbase object){ //(A)¿ø·¡»ö ¸íĪÀ» userString ¼Ó¼º¿¡ ±â¾ï½ÃŲ´Ù WSCvariant color = object.getProperty("backColor"); object.setProperty("userString",color); //(B)¼±ÅûöÀÇ Ç¥½Ã»óÅ·ΠÇÑ´Ù object.setProperty("backColor","slategray4"); } } // in subop2.java //¼ºêEP2 // ¸¶¿ì½º ³ª°¨ public class subop2 { protected static void subop2(WSCbase object){ //(C)¿ø·¡»ö ¸íĪÀ» ²¨³½´Ù WSCvariant color = object.getProperty("userString"); //(D)¿ø·¡ Ç¥½Ã»óÅ·ΠÇÑ´Ù object.setProperty("backColor",color); } } // in chop.java //WSEV_INIT(INITIALIZE)Æ®¸®°Å·Î ¶óº§¿¡ ¼³Á¤ÇÑ´Ù. public class chop { protected static void chop(WSCbase object){ //ÃʱâÈ Æ®¸®°Å(trigger)°¡ ¹ß»ýÇÏ¿© ½ÇÇàµÇ¸é //¼ºêEP¸¦ °¢°¢ »õ·Î ¼³Á¤ÇÕ´Ï´Ù. //(E) À̺¥Æ® ÇÁ·Î½ÃÀúÀÇ ½Å±Ô ¼³Á¤ //¼ºêEP1 //OP¸íĪ="°Á¶OP1" ÇÔ¼ö=subop1 ±âµ¿ Æ®¸®°Å=WSEV_MOUSE_IN object.addProcedure("¥Ï¥¤¥é¥¤¥ÈOP1","subop1.subop1",Mwt.WSEV_MOUSE_IN); //(F) À̺¥Æ® ÇÁ·Î½ÃÀúÀÇ ½Å±Ô ¼³Á¤ //¼ºêEP2 //OP¸íĪ="°Á¶OP2" ÇÔ¼ö=subop2 ±âµ¿ Æ®¸®°Å=WSEV_MOUSE_OUT object.addProcedure("¥Ï¥¤¥é¥¤¥ÈOP2","subop2.subop2",Mwt.WSEV_MOUSE_OUT); } }¼ºêEP1´Â WSEV_MOUSE_INÀÇ Æ®¸®°Å(trigger)·Î ±âµ¿µÇ¿© ¶óº§ÀÇ ¹è°æÇ¥½Ã»öÀ» °Á¶»öÀ¸·Î ÇÕ´Ï´Ù. ¼ºêEP2´Â WSEV_MOUSE_OUTÀÇ Æ®¸®°Å(trigger)·Î ±âµ¿µÇ¿© ¶óº§ÀÇ ¹è°æÇ¥½Ã»öÀ» ¿ø·¡ »öÀ¸·Î µÇµ¹¸³´Ï´Ù. À̺¥Æ® ÇÁ·Î½ÃÀúº»Ã¼´Â ÃʱâÈ Æ®¸®°Å(trigger)·Î °´Ã¼¿¡ ¼³Á¤µÇ¿©ÀÖÀ¸¸ç (E),(F)¿¡¼ ¼ºêEP1,2¸¦ °´Ã¼¿¡ ¼³Á¤ÇϰíÀÖ½À´Ï´Ù. ÀÌÈÄ ¸¶¿ì½º°¡ ÃâÀÔÀ»ÇÏ¸é »õ·Î ÇÁ·Î±×·¥ÀÇ ¾È¿¡¼ ¼³Á¤µÈ ¼ºêEP°¡ ½ÇÇàµÇµµ·Ï µË´Ï´Ù.¸¶¿ì½º·Î ¼±Åð¡´ÉÇÑ ±×·ìÈµÈ ¶óº§·Î Çϱ⿡´Â
°°Àº ¿¡¸®¾îÀ§¿¡ ¹èÄ¡µÇ´Â ¶óº§À» ¸¶¿ì½º·Î ¼±Åð¡´ÉÇÑ ±×·ìÈµÈ ¶óº§¿¡ÇÏ´Â À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ½ÇÁ¤Çϱ⿡´Â ¸¶¿ì½º·Î ¼±ÅÃµÈ ¶óº§À» ÇÔ¸ôÇÑ »óÅÂ·Î ÇØ³õ°í ±× ¿¡¸®¾î¿¡ ¾î´À ¶óº§ÀÌ ¼±Åõǿ©Àִ°¡¸¦ º¸ÁöÇϵµ·ÏÇÕ´Ï´Ù.// WSEV_MOUSE_PRESS(MOUSE-PRESS)Æ®¸®°Å·Î ¶óº§¿¡ ¼³Á¤ÇÕ´Ï´Ù. public class chop { protected static void chop(WSCbase object){ //(A)userValue ¼Ó¼º¿¡ ¼³Á¤µÇ¿©ÀÖ´Â °ªÀ» ID·Î¼ »ç¿ëÇÑ´Ù WSCvariant val = object.getProperty("userValue"); //(B)¼±ÅÃµÈ »óÅÂ(ÇÔ¸ô°ÅÂ)·Î ÇÑ´Ù object.setProperty("shadowType",Mwt.WS_SHADOW_IN); //(C)ºÎ¸ð°¡ ±â¿ÁÇÏ´Â ¼±Åõǿ©ÀÖ´ø °´Ã¼¸¦ ÃëµæÇÑ´Ù WSCbase parent = object.getParent(); WSCvariant target_val = parent.getVariantData("SelectedItem"); WSCbase target = target_val.getInstancePtr(); //(D)±× ¼±Åõǿ©ÀÖ´ø °´Ã¼ÀÇ Ç¥½Ã»óŸ¦ ¿ø·¡»óÅÂ(µ¹Ãâ»óÅÂ)·Î µÇµ¹¸°´Ù if (Mwt.WSGIappObjectList().existInstance(target) != Mwt.False){ target.setProperty("shadowType",Mwt.WS_SHADOW_OUT); } if (Mwt.WSGIappObjectList().existInstance(target) != Mwt.False && target.getInstanceName() == object.getInstanceName()){ //(E)¼±ÅÃÇϰíÀÖ´Â °´Ã¼¸¦ ´Ù½Ã Ŭ¸¯ÇÑ °æ¿ì // µÎ¹øÂ°ÀÇ °æ¿ì´Â ¿Ö¿ì°íÀÖ´ø ÀÚ½ÅÀ» 0À¸·ÎÇØ¼ Ä¡¿î´Ù parent.setVariantData("GroupValue",0); parent.setVariantData("SelectedItem",0); }else{ //(F)ù¹øÂ°ÀÇ °æ¿ì´Â ÀÚ½ÅÀ» ºÎ¸ð¿¡ ±â¾ï½ÃÅ´. parent.setVariantData("GroupValue",val); // ID // WSCbase ÀνºÅĽº WSCvariant val_self = new WSCvariant(object); parent.setVariantData("SelectedItem",val_self); } } }±×·ìÈÇÏ´Â ¶óº§µé¿¡ °¢°¢À» ½Äº°ÇÒ ID°¡ ÇÊ¿äÇÏÁö¸¸ userValue ¼Ó¼º¿¡ ¼³Á¤µÇ¿©ÀÖ´Â °ªÀ» ID ·Î »ç¿ëÇÏ´õ·Ï ÇսôÙ.
(A)¿¡¼ userValue ¼Ó¼º¿¡ ¼³Á¤µÇ¿©ÀÖ´Â ID ¸¦ ÃëµæÇÕ´Ï´Ù.
(B)¿¡¼´Â ¼±ÅõȰÍÀ» Ç¥½ÃÇϱâÀ§ÇØ ÇÔ¸ôƲ Ç¥½Ã·Î ÇÕ´Ï´Ù.
(C)·Î¼ ¼±Åõǿ©ÀÖ´ø °´Ã¼¸¦ ÃëµæÇÕ´Ï´Ù. ¾î´À °´Ã¼³ª ¹®Á¦¾øÁö¸¸ ÀÌ ¿¹ÀÇ °æ¿ì, ±×·ìÈÇÏ´Â ¶óº§µé¿¡ °øÅëÀÎ ºÎ¸ð°´Ã¼¿¡ ±â¾ï½Ã۵µ·ÏÇÕ´Ï´Ù.
(D)´Â ¼±Åõǿ©ÀÖ´ø °´Ã¼ÀÇ Ç¥½Ã»óŸ¦ ¿ø·¡ÀÇ µ¹Ãâ»óÅ¿¡ µÇµ¹¸³´Ï´Ù.
(E)·Î ¼±Åõǿ©ÀÖ´ø °´Ã¼(target)¿Í »õ·Î ¼±ÅÃµÈ °´Ã¼(object)°¡ °°Àº°æ¿ì, Ãø µÎ¹ø ¼±ÅÃµÈ »óÅ·ΠµÈ °æ¿ì¿¡´Â ÇØÀúÇÕ´Ï´Ù. ºÎ¸ð¿¡ ±â¾ï½ÃŲ °ª°ú °´Ã¼¸¦ Ä¡¿ó´Ï´Ù.
(F)¿¡¼´Â »õ·Î ¼±ÅÃµÈ °´Ã¼¿Í ±× °ªÀ» ºÎ¸ð¿¡ ±â¾ï½Ãŵ´Ï´Ù.
Copyright(C) WideStudio/MWT Development Team, 1999-2005 | Last modified: Jul 31, 2005 |