![]() | Programming Guide | WideStudio/MWT Index Table of contents |
»ç¿ëÀÚ ´ëÈ »óÀÚ
°£´ÜÇÑ »ç¿ëÀÚ ´ëÈ »óÀÚÀÇ ÀÛ¼º
WSCdialog ¸¦ »ç¿ëÇØ¼ °£´ÜÇÑ »ç¿ëÀÚ ´ëÈ »óÀÚ¸¦ ÀÛ¼ºÇغ¾½Ã´Ù. ´ÙÀ½°ú °°Àº ±â´ÉÀ» °¡Áö°íÀÖ´Ù°í ÇÕ´Ï´Ù.
¾î´À ´ÜÃ߸¦ ´©·ç¸é ´ëÈ »óÀÚ°¡ Ç¥½ÃµÈ´Ù. ´ëÈ »óÀÚ¿¡´Â ÀÔ·Â Çʵå¿Í ¶óµð¿À¹öư ±×·ìÀÌ ÀÖ´Ù. ´ëÈ »óÀÚ Á¾·á½Ã¿¡ Á¤È®È÷ ÀԷµǿ©Àִ°¡¸¦ üũÇÑ´Ù. ´ëÈ »óÀÚÀÇ ÀԷ°á°ú¸¦ ¶óº§¿¡ Ç¥½ÃÇÕ´Ï´Ù. ÀÌ »ùÇÃÀº ws/sampes/Ocaml/dialog/newproject.prj ·Î Á¦°øµÇ¿©ÀÖ½À´Ï´Ù.
[»ç¿ëÀÚ ´ëÈ »óÀÚ¸¦ »ç¿ëÇÑ »ùÇÃ]»ç¿ëÀÚ ´ëÈ »óÀÚÀÇ ÆË¾÷ Á¦¾î
ws/sampes/share/dialog/newproject.prj ·Î Á¦°øµÇ¿©ÀÖ´Â »ùÇÃÀ» ¹ØÀ¸·Î »ç¿ëÀÚ ´ëÈ »óÀÚÀÇ ÆË¾÷ Á¦¾î¸¦ º¾½Ã´Ù. ´ëÈ »óÀÚªÏ, ÀÔ·Â,ȤÀº Ç¥½Ã¸¦ ½ÇÇà½Ãų Àü¿ë À©µµ¿ì·Î¼ ¸¹ÀÌ ÀÌ¿ëµË´Ï´Ù. µû¶ó¼ ÀϹÝÀûÀÎÀ©µµ¿ì·Î¼ ÀÛ¼ºÇÏ¸é »çÁ¤ÀÌ ³ª»Ü °æ¿ì°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é º¹¼öÀÇ Àå¼Ò(À̺¥Æ® ÇÁ·Î½ÃÀú)¿¡¼ °°Àº ´ëÈ »óÀÚ¸¦ ºÎ¸¥´Ù°í ÇսôÙ.
ÀÌ °æ¿ì, ÀϹÝÀûÀÎÀ©µµ¿ì·Î¼ ÀÛ¼ºÇϸç´Â ´ëÈ »óÀÚÀÇ ÀÔ·ÂÀÌ ³¡³ °æ¿ìÀÇ ¾Ë¸²À» ¹Þ¾Æµå¸®±â°¡ º¹ÀâÇÏ°Ô µË´Ï´Ù. ±×·¯³ª ´ëÈ »óÀÚ·Î ¸¸µç °æ¿ì¿¡´Â ´ëÈ »óÀÚ ÀÔ·Â Á¾·á°¡ popup ¸Þ¼µå¿¡ÀÇÇÑ ¿Ï·á º¹±Í·Î µ¿±â¸¦ ÀâÀ»¼ö Àֱ⿡ °£´ÜÀÌ À̺¥Æ® ÇÁ·Î½ÃÀú¿¡¼ ´ëÈ »óÀÚ ÀÔ·ÂÀÇ Á¦¾î°¡ ½ÇÇàÇÒ¼ö ÀÖ½À´Ï´Ù.
±×¸²Àº Ç¥½ÃµÈ À©µµ¿ì°¡ °á°ú¸¦ µÇµ¹¸± °æ¿ìÀÇ À©µµ¿ì¿Í ´ëÈ »óÀÚÀÇ Â÷À̸¦ Ç¥½ÃÇѰÍÀÔ´Ï´Ù.°£´ÜÇÑ ´ëÈ »óÀÚÀÇ Ã³¸®¼ø¼¿¡ µû¶ó ¼³¸íÇսôÙ. ¸ÕÀú ´ëÈ »óÀÚÀÇ ÀÛ¼ºÀÔ´Ï´Ù. WSCdialog Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ Çϳª ÀÛ¼ºÇÕ´Ï´Ù. ´ëÈ »óÀÚÀ§¿¡ °¢°¢ÀÇ °´Ã¼¸¦ ¹èÄ¡ÇÕ´Ï´Ù. »ùÇ÷δ ¾Æ·¡ÀÇ °´Ã¼¸¦ ¹èÄ¡ÇϰíÀÖ½À´Ï´Ù.
[À©µµ¿ì¿Í »ç¿ëÀÚ ´ëÈ »óÀÚ¸¦ »ç¿ëÇÑ °æ¿ìÀÇ Â÷ÀÌ]
WSCvifield* newvifi_003 WSCradioGroup* newradi_006 ´ÙÀ½¿¡ ´ëÈ »óÀÚÀÇ OK,NO,CANCEL ´ÜÃß°¡ ´¸®¿î °æ¿ìÀÇ Ã³¸®¸¦ ±â¼úÇÕ´Ï´Ù. ´ëÈ »óÀÚ¿¡ ACITVATE Æ®¸®°Å(trigger)·Î À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ºÙ¿©³õ½À´Ï´Ù. ÀÌ À̺¥Æ® ÇÁ·Î½ÃÀú´Â ´ëÈ »óÀÚ¿¡ Á¤È®È÷ ÀԷµǿ´´Â°¡¸¦ üũÇϰí ÀÔ·ÂÀÌ ¾ÈµÇ¿´´õ¶ó¸é ¸Þ½ÃÁö ´ëÈ »óÀÚ·Î ¿À·ù¸¦ Ç¥½ÃÇÕ´Ï´Ù.
[°£´ÜÇÑ »ç¿ëÀÚ ´ëÈ »óÀÚÀÇ ¿¹](*----------------------------------------------------------*) (*Function for the event procedure *) (*----------------------------------------------------------*) open Swig open Mwt open Mwtlib open Newwin000 let dialogep obj = (* do something...*) if get_int (obj -> getStatus()) <> get_int _WS_DIALOG_OK then begin (* A *) ignore(obj -> setVisible(_False)); end else begin let str = ((!newvifi_003) -> getProperty("labelString")) in if get_string (str -> getCharPtr()) = "" then begin (* B *) let msg = _WSGIappMessageDialog '() in msg->setProperty("defaultPosition",_True); msg->setProperty("width",500); msg->setProperty("labelString", "Please input some string to the input field."); ignore(msg->popup()); (* C *) end else begin let value = !newradi_006->getProperty("value") in if get_int value = 0 then begin (* D *) let msg = _WSGIappMessageDialog '() in msg->setProperty("defaultPosition",_True); msg->setProperty("width",500); msg->setProperty("labelString", "Please select a item of the radio group."); ignore(msg->popup()); (* E *) end else begin ignore(obj -> setVisible(_False)); (* F *) end; end; end; () let _ = Callback.register "dialogep" dialogep¸ÕÀú À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ºÙ¿©³õÀº ´ëÈ »óÀÚÀÇ Å¬·¡½º Æ÷ÀÎÅ͸¦ ÃëµæÇÕ´Ï´Ù. ¿Ö³ÄÇÏ¸é ´ëÈ »óÀÚ Å¬·¡½º°íÀ¯ÀÇ getStatus ¸Þ¼µå¿¡ Á¢±Ù(Access)ÇØ¼ ´¸®¿î ´ÜÃßÀÇ Á¾·ù¸¦ Á¶»çÇϱâÀ§Çؼ ÀÔ´Ï´Ù.
A ¿¡¼ ´©¸° ´ÜÃ߸¦ üũÇÕ´Ï´Ù. OK ´ÜÃ߿ܴ ´ëÈ »óÀÚ¸¦ ±×´ë·Î ºÒ°¡½ÃÈÇÕ´Ï´Ù.
B ¿¡¼´Â newvifi_003 ¿¡ ÀԷµǿ©Àִ°¡¸¦ üũÇÕ´Ï´Ù. ÀԷ¾ȵǿ©ÀÖ´Â °æ¿ì´Â C ¿¡¼ ¸Þ½ÃÁö ´ëÈ »óÀÚ¸¦ Ç¥½ÃÇØ¼ Á¾·áÇÕ´Ï´Ù. D ¿¡¼ newradi_006 ÀÌ ¼±Åõǿ©Àִ°¡ üũÇÕ´Ï´Ù. ¼±Åþȵǿ©ÀÖ´Â °æ¿ì´Â E ·Î ¸Þ½ÃÁö ´ëÈ »óÀÚ¸¦ Ç¥½ÃÇØ¼ Á¾·áÇÕ´Ï´Ù.
´ÙÀ½¿¡ F ¿¡¼ ÀÔ·ÂÀÌ Á¤È®ÇÑ °æ¿ì¿¡´Â ´ëÈ »óÀÚ¸¦ ºÒ°¡½ÃÈÇÕ´Ï´Ù. ÀÌ ¶§ ÀÌ ´ëÈ »óÀÚ¸¦ ºÒ°¡½ÃÈÇÔÀ¸·Î¼ ÀÌ ´ëÈ »óÀÚ¸¦ ºÒ·¯³õÀº popup ¸Þ¼µå°¡ º¹±ÍÇÕ´Ï´Ù. µû¶ó¼ ºÒ°¡½ÃÈ ¾ÈÇÑ °æ¿ì, ´ëÈ »óÀÚ°¡ Á¾·á¾ÈÇÕ´Ï´Ù.
´ÙÀ½¿¡´Â ´ëÈ »óÀÚ¸¦ ºÎ·¯³õÀº À̺¥Æ® ÇÁ·Î½ÃÀúÀÇ ¿¹ÀÔ´Ï´Ù.[dialog!] ¶ó°í Ç¥½ÃµÈ ´ÜÃ߸¦ ´©¸£¸é ´ëÈ »óÀÚ°¡ Ç¥½ÃµÇ¿© ÀÔ·ÂÇÑ °á°ú°¡ 3°³ÀÇ ¶óº§¿¡ Ç¥½ÃµË´Ï´Ù. ù° ¶óº§¿¡´Â ´ëÈ »óÀÚÀÇ OK,NO,CANCEL ´ÜÃß°¡ ´©·¯Áø °á°ú. µÑ° ¶óº§¿¡´Â newvifi_003 ¿¡ ÀÔ·ÂµÈ °á°ú. ¼Â° ¶óº§¿¡´Â newradi_006 ¿¡¼ ¼±ÅÃµÈ °á°ú¸¦ Ç¥½ÃÇÕ´Ï´Ù.
[»ç¿ëÀÚ ´ëÈ »óÀÚ¸¦ ºÒ·¯³õÀº ȸéÀÇ ¿¹](*----------------------------------------------------------*) (*Function for the event procedure *) (*----------------------------------------------------------*) open Swig open Mwt open Mwtlib open Newwin000 let btnep obj = (* do something...*) let value = !newdial_001 -> popup() in if get_int value = get_int _WS_DIALOG_OK then begin ignore(!newvlab_007 -> setProperty("labelString","DIALOG OK!")); end else if get_int value = get_int _WS_DIALOG_NO then begin ignore(!newvlab_007 -> setProperty("labelString","DIALOG NO!")); end else if get_int value = get_int _WS_DIALOG_CANCEL then begin ignore(!newvlab_007 -> setProperty("labelString","DIALOG CANCEL!")); end; let tmp = !newvifi_003 -> getProperty("labelString") in let tmp2 = "INPUT:" ^ (get_string(tmp->getCharPtr())) in ignore(!newvlab_010 -> setProperty("labelString",(make_string(tmp2)))); let tmp = !newradi_006 -> getProperty("value") in let tmp2 = "SELECT:" ^ (get_string(tmp->getCharPtr())) in ignore(!newvlab_011 -> setProperty("labelString",(make_string(tmp2)))); () let _ = Callback.register "btnep" btnep
Copyright(C) WideStudio/MWT Development Team, 1999-2005 | Last modified: Jul 31, 2005 |