¸®½À °­Á - POPUP_LIST ¹Ú½º , ´ÙÀ̾ó·Î±× ¿¬µ¿°ü°è ¿¹Á¦


º» °­Á´ ¾ÆÅ°¿ÀÇǽº(±èÈñÅÂ)¿¡ ÀÇÇØ ¸¸µé¾î Á³À¸¸ç
¾î¶°ÇÑ À¥»ó¿¡ ¾ÆÅ°¿ÀÇǽº(±èÈñÅÂ)ÀÇ µ¿ÀǾøÀÌ ¿Ã¸®´Â °ÍÀ» Çã¶ôÇÏÁö ¾Ê½À´Ï´Ù.

 

POPUP_LIST ¹Ú½ºÀÇ ÀÛµ¿¹æ½Ä¹×,´ÙÀ̾ó·Î±× °£¿¡ ¿¬µ¿°ü°è ¿¹Á¦ ÀÔ´Ï´Ù.
»ç¿ëÀÚ°¡ À̹ÌÁö ¹Ú½º¸¦ Ŭ¸¯ÇÏ¸é ±×¿¡ ÇØ´çÇÏ´Â ´ÙÀ̾ó·Î±×°¡ ¶ß°í
»ç¿ëÀÚ°¡ POPUP_LIST ¹Ú½º¿¡¼­ ¼±ÅÃµÈ ³»¿ëÀ» ÃÖÁ¾ÀûÀ¸·Î Ãâ·ÂÇÕ´Ï´Ù.
´ÙÀ̾ó·Î±×ÀÇ ¿¬µ¿Àº ¿ëµµ¿¡ µû¶ó,±â´É¿¡ µû¶ó ¿©·¯°¡Áö ÀÖÀ»¼ö ÀÖ½À´Ï´Ù.
ÀÌ ¿¹Á¦¸¦ º¸½Ã°í ÀÀ¿ë,Ȱ¿ë ÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.


ÀÌ ¿¹Á¦¸¦ ½ÇÇàÇØº¸·Á¸é ÆÄÀÏÀ» ´Ù¿î¹Þ¾Æ ijµåÀÇ support µð·ºÅ丮¿¡
ºÙ¿©³Ö±â ÇϽðí ijµå¸¦ ½ÇÇàÇÑÈÄ command line ¿¡ (load "exdialog")
ÇÏ½Ã°í ½ÇÇà¸íÀº "exdialog" ÀÔ´Ï´Ù.

Command:(load "exdialog")
Command:exdialog

ÄÚµå



(defun c:exdialog (/ vimage vlist id listdata-product1  listdata-product2
                     listdata-product3    ok-actio    ok   )
  (defun vimage (a key / )
    (start_image key)
    (fill_image 0 0 (dimx_tile key) (dimy_tile key) -2)
    (slide_image 0 0 (dimx_tile key) (dimy_tile key) a)
    (end_image)
  )

  (defun vlist (a key / )
    (start_list key)
    (mapcar 'add_list a)
    (end_list)
  )
  (defun ok-action()
    (alert (strcat "\n¼±ÅÃÇϽŠÁ¦Ç°Àº \""
                   (nth (atoi (get_tile "plist1")) (cadr ok))
                   "\" °ú \""
                   (nth (atoi (get_tile "plist2")) (caddr ok))
                   "\" ÀÔ´Ï´Ù! ÇÁ·Î±×·¥ ³¡~~!"
           )
    )
  )  
  (setq listdata-product1 '("Á¦Ç° 1 ÀÔ´Ï´Ù." ("±è" "¹Ì¿ª" "´Ù½Ã¸¶" "Á¶°³" "¿À¡¾î" "ÂÞ²Ù¹Ì")("¹è" "»ç°ú" "±Ö" "¿À·£Áö")))
  (setq listdata-product2 '("Á¦Ç° 2 ÀÔ´Ï´Ù." ("³ª»ç" "º¼Æ®" "µå¶óÀ̹ö")("¼±¹Ý" "Àý»è" "±âŸµîµî")))
  (setq listdata-product3 '("Á¦Ç° 3 ÀÔ´Ï´Ù." ("1" "2" "3" "4" "5" "6" "7" "8")("d" "c" "b" "a")))
  
  (setq id (load_dialog "exdialog.dcl"))
  (new_dialog "exdialog" id)
  (vimage "ACAD(TRANS)" "image1")
  (vimage "ACAD(TRIANG)" "image2")
  (vimage "ACAD(STEEL)" "image3")
  (action_tile "image1" "(done_dialog 1)")
  (action_tile "image2" "(done_dialog 2)")
  (action_tile "image3" "(done_dialog 3)")
  (action_tile "accept" "(done_dialog 0)")
  (action_tile "cancel" "(done_dialog 0)")
  (setq ok (start_dialog))
  (if (< 0 ok)
    (progn
      (new_dialog "popup_dialog" id)
      (setq ok (eval (read (strcat "listdata-product" (itoa ok)))))
      (set_tile "text" (car ok))
      (vlist (cadr ok) "plist1")
      (vlist (caddr ok) "plist2")
      (action_tile "accept" "(ok-action)(done_dialog)")
      (action_tile "cancel" "(done_dialog)")
      (start_dialog)
    )
  )  
  (unload_dialog id)
  (princ)

)  


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> DCL Á¤ÀÇ ºÎºÐ <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

exdialog : dialog { label = "¸®½ºÆ® - À̹ÌÁö ¿¹Á¦ ´ÙÀ̾ó·Î±×";
          :row {
            :icon_image {key = "image1";width = 15;fixed_width = true;fixed_height = true; aspect_ratio = 1; }
            :icon_image {key = "image2";width = 15;fixed_width = true;fixed_height = true; aspect_ratio = 1; }
            :icon_image {key = "image3";width = 15;fixed_width = true;fixed_height = true; aspect_ratio = 1; }
          }
          ok_cancel;
        }
popup_dialog : dialog { label = "¼±ÅÃÇϽÿÀ~!";
               :text { key = "text";}
               :popup_list { key= "plist1"; }
               :popup_list { key = "plist2";}
               ok_cancel;
              } 
		

¼³¸í


(defun c:exdialog (/ vimage vlist id listdata-product1  listdata-product2
                     listdata-product3    ok-actio    ok   )
  ;; image Ÿ¸®¿¡ À̹ÌÁö(½½¶óÀ̵å)¸¦ Ãâ·ÂÇÏ´Â ÇÔ¼ö´Ù.
  (defun vimage (a key / )
    (start_image key)
    (fill_image 0 0 (dimx_tile key) (dimy_tile key) -2)
    (slide_image 0 0 (dimx_tile key) (dimy_tile key) a)
    (end_image)
  )
  ;; popup_list ¶Ç´Â list_box ¿¡ ¸®½ºÆ®¸¦ Ãâ·ÂÇÏ´Â ÇÔ¼ö´Ù.
  (defun vlist (a key / )
    (start_list key)
    (mapcar 'add_list a)
    (end_list)
  )
  ;; »ç¿ëÀÚ°¡ ÃÖÁ¾¼±ÅÃÀ» ÇßÀ»¶§ ÇØ´ç ¸®½ºÆ®¹Ú½º¿¡ ÇØ´çÇÏ´Â °ªÀ» Ãâ·ÂÇÏ´Â ÇÔ¼ö´Ù.
  (defun ok-action()
    (alert (strcat "\n¼±ÅÃÇϽŠÁ¦Ç°Àº \""
                   ;; popup_list ´Â ´ÜÁö ¸î¹øÂ°¸¸À» ¸®ÅÏÇÑ´Ù. ±×·¯¹Ç·Î 
                   ;; µ¥ÀÌŸ¸®½ºÆ®¿¡¼­ ÇØ´ç ¹øÂ°ÀÇ µ¥ÀÌŸ¸¦ Àоî¿Â´Ù.
                   (nth (atoi (get_tile "plist1")) (cadr ok))
                   "\" °ú \""
                   (nth (atoi (get_tile "plist2")) (caddr ok))
                   "\" ÀÔ´Ï´Ù! ÇÁ·Î±×·¥ ³¡~~!"
           )
    )
  )  
  ;; °¢°¢ÀÇ µ¥ÀÌŸÀÌ´Ù.
  (setq listdata-product1 '("Á¦Ç° 1 ÀÔ´Ï´Ù." ("±è" "¹Ì¿ª" "´Ù½Ã¸¶" "Á¶°³" "¿À¡¾î" "ÂÞ²Ù¹Ì")("¹è" "»ç°ú" "±Ö" "¿À·£Áö")))
  (setq listdata-product2 '("Á¦Ç° 2 ÀÔ´Ï´Ù." ("³ª»ç" "º¼Æ®" "µå¶óÀ̹ö")("¼±¹Ý" "Àý»è" "±âŸµîµî")))
  (setq listdata-product3 '("Á¦Ç° 3 ÀÔ´Ï´Ù." ("1" "2" "3" "4" "5" "6" "7" "8")("d" "c" "b" "a")))
  
  (setq id (load_dialog "exdialog.dcl"))
  (new_dialog "exdialog" id)
  (vimage "ACAD(TRANS)" "image1")
  (vimage "ACAD(TRIANG)" "image2")
  (vimage "ACAD(STEEL)" "image3")
  ;; °¢°¢ÀÇ À̹ÌÁö¸¦ Ŭ¸¯Çϸé ok º¯¼ö¿¡ ÇØ´ç¸®ÅϵǴ °ªÀÌ ÀԷµȴÙ. 
  (action_tile "image1" "(done_dialog 1)")
  (action_tile "image2" "(done_dialog 2)")
  (action_tile "image3" "(done_dialog 3)")
  (action_tile "accept" "(done_dialog 0)")
  (action_tile "cancel" "(done_dialog 0)")
  ;; ¸®ÅϵǴ °ªÀ» ok º¯¼ö¿¡ ÀúÀåÇÑ´Ù.
  (setq ok (start_dialog))
  ;; À̹ÌÁö¸¦ ¼±ÅÃÇß´Ù¸é....
  (if (< 0 ok)
    (progn
      ;; µÎ¹øÂ° ´ÙÀ̾ó·Î±× "popup_dialog" ¸¦ ºÒ·¯¿Â´Ù.
      (new_dialog "popup_dialog" id)
      ;; ok º¯¼ö¿¡ ÀÌÀü ´ÙÀ̾ó·Î±×¿¡ ÇØ´çÇÏ´Â µ¥ÀÌŸ¸¦ ÀÔ·ÂÇÑ´Ù.
      (setq ok (eval (read (strcat "listdata-product" (itoa ok)))))
      ;; ŸÀ̵éÀ» Ãâ·ÂÇÏ°í ¸®½ºÆ®¹Ú½º(popup_list)¿¡ °ªÀ» Ãâ·ÂÇÑ´Ù.
      (set_tile "text" (car ok))
      (vlist (cadr ok) "plist1")
      (vlist (caddr ok) "plist2")
      ;; »ç¿ëÀÚ°¡ "È®ÀÎ" À» ´©·ç¸é ¼±ÅÃµÈ ¾ÆÀÌÅÛÀ» Ãâ·ÂÇÑ´Ù.
      (action_tile "accept" "(ok-action)(done_dialog)")
      (action_tile "cancel" "(done_dialog)")
      (start_dialog)
    )
  )  
  (unload_dialog id)
  (princ)

)