ymcui 发表于 2014-10-28 08:50:17

这个DCL如何做到单击执行命令?

这个DCL如何做到单击执行命令?(defun c:zz()
   (setvar "cmdecho" 0)
   (setq dcl_id (load_dialog "kimage"))
   (new_dialog "kimage" dcl_id)
   (setq sldkeYI_list'("kimage1" "kimage2" "kimage3" "kimage8" "kimage9" "kimage10" "kimage11" "kimage12"))
   (setq sld_list'("kimage(kimage1)" "kimage(kimage2)" "kimage(kimage3)" "kimage(kimage4)" "kimage(kimage5)" "kimage(kimage6)" "kimage(kimage7)" "kimage(kimage8)"))
   (mapcar 'show_sld sldkeYI_list sld_list)
   (setq ddtype 1)
   (mode_tile "kimage1" 2)
   (action_tile "kimage1" "(setq ddtype 1)")
   (action_tile "kimage2" "(setq ddtype 2)")
   (action_tile "kimage3" "(setq ddtype 3)")
   (action_tile "kimage4" "(setq ddtype 4)")
   (action_tile "kimage5" "(setq ddtype 5)")
   (action_tile "kimage6" "(setq ddtype 6)")
   (action_tile "kimage7" "(setq ddtype 7)")
   (action_tile "kimage8" "(setq ddtype 8)")
   (action_tile "accept" "(done_dialog 1)")
   (setq dd(start_dialog))
   (if (= dd 1)
   (cond
   ((= ddtype 1)(C:11))
   ((= ddtype 2)(C:22))
   ((= ddtype 3)(C:33))
   ((= ddtype 8)(C:44))
   ((= ddtype 9)(C:55))
   ((= ddtype 10)(c:66))
   ((= ddtype 11)(C:77))
   ((= ddtype 12)(C:88))
   )
   )
)
(defun show_sld(key sld)
   (setq x (DIMx_tile key))
   (setq y (DIMY_tile key))
   (start_image key)
   (fill_image 0 0 x y -2)
   (slide_image 0 0 x y sld)
   (end_image)
)

ymcui 发表于 2014-10-28 08:50:52


kimage:dialog{
        label="工具1";
                :column{
:row{
                :column{
                :text{label="11";alignment=centered;}
                :image_button {
                        key = "kimage1";
                        color = -2;
                        width = 16;
                        aspect_ratio = 1;
                        allow_accept = true;
                        }}
                :column{
                :text{label="22";alignment=centered;}
                        :image_button {
                        key = "kimage2";
                        color = -2;
                        width = 16;
                        aspect_ratio = 1;
                        allow_accept = true;
                        }}
                :column{
                :text{label="33";alignment=centered;}
                :image_button {
                        key = "kimage3";
                        color = -2;
                        width = 16;
                        aspect_ratio = 1;
                        allow_accept = true;
                        }}
                :column{
                :text{label="44";alignment=centered;}
                :image_button {
                        key = "kimage4";
                        color = -2;
                        width = 16;
                        aspect_ratio = 1;
                        allow_accept = true;
                        }}
                        }
:row{
                :column{
                :text{label="55";alignment=centered;}
                :image_button {
                        key = "kimage5";
                        color = -2;
                        width = 16;
                        aspect_ratio = 1;
                        allow_accept = true;
                        }}
                :column{
                :text{label="66";alignment=centered;}
                :image_button {
                        key = "kimage6";
                        color = -2;
                        width = 16;
                        aspect_ratio = 1;
                        allow_accept = true;
                        }}
                :column{
                :text{label="77";alignment=centered;}
                :image_button {
                        key = "kimage7";
                        color = -2;
                        width = 16;
                        aspect_ratio = 1;
                        allow_accept = true;
                        }}
                :column{
                :text{label="88";alignment=centered;}
                :image_button {
                        key = "kimage8";
                        color = -2;
                        width = 16;
                        aspect_ratio = 1;
                        allow_accept = true;
                        }}
                        }
}
        ok_cancel;
}

zzyong00 发表于 2014-10-28 10:09:56

(action_tile "kimage1" "(setq ddtype 1)");用户在对话框中选中这个控件时,就会执行(setq ddtype 1)
(setq dd(start_dialog))
   (if (= dd 1)
   (cond
   ((= ddtype 1)(C:11)) ;根据ddtype 决定执行哪个函数

Gu_xl 发表于 2014-10-28 11:18:27

我的这个帖子里的示例代码有相关单击和双击的演示!
【Gu_xl】DWG图形到DCL IMAGE图像描点程序应用源码示例

ymcui 发表于 2014-10-28 13:37:10

谢谢已解决      
页: [1]
查看完整版本: 这个DCL如何做到单击执行命令?