免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 1975|回复: 5
收起左侧

[求助] DCL文件里面的数据怎么给LSP,button控件

[复制链接]

7

主题

2012

铜板

7

好友

助理工程师

Rank: 5Rank: 5

积分
209
发表于 2021-1-29 18:28 | 显示全部楼层 |阅读模式
本帖最后由 潺泓 于 2021-1-30 08:32 编辑

求助,我想实现一个控件,如下图,点击上一个返回一个数值给LSP文件,点击下一个返回一个数值给LSP文件

这个button该怎么定义,以及怎么把这个值回调给lsp文件,十分感谢

a:dialog{
        label="slider";               
        
        : edit_box {                                //*define edit box
         key = "myedit" ;                                //*give it a name
         label = "第几个注记" ;        //*give it a label
         edit_width = 6 ;                        //*6 characters only
        }

        :row{               
                :button{
                        key=""
                        label="上一个";
                        
                }
                :button{
                        key=""
                        label="下一个";
                }
        }                        
}



;2、命令行输入 test
(defun c:test( / continue curBtn dlgId )   
    (setq dlgId (load_dialog "slider.dcl"))        
        (if (not (new_dialog "a" dlgId))
            (exit)
        )
                (set_tile "myedit" "1")        
        

               

                (action_tile "myedit"                         ;用户修改编辑框文字时触发
                "(ebox_action $value $reason)")                ;调用ebox_action

               
                  
                (defun ebox_action (val why)                        
                        (if (or (= why 2) (= why 1))        
                                (set_tile "myslider" val)
                        )
                )

        (start_dialog)

        (cond ((= curBtn "btn1") (f1))
            ((= curBtn "") (setq continue nil))

        )

    (unload_dialog dlgId)
        
)

这是我参考其他人的改的,接下来不知道怎么改了
微信图片_20210129182705.png

7

主题

2012

铜板

7

好友

助理工程师

Rank: 5Rank: 5

积分
209
 楼主| 发表于 2021-1-30 08:36 | 显示全部楼层
别沉啊
回复

使用道具 举报

头像被屏蔽

141

主题

980万

铜板

3万

好友

管理员

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分
627184
发表于 2021-2-1 09:05 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

1256

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
92
发表于 2021-2-1 13:11 | 显示全部楼层
坐等大佬
回复

使用道具 举报

地信网友  发表于 2021-2-1 17:33
应该是少一个get_tile  函数

7

主题

2012

铜板

7

好友

助理工程师

Rank: 5Rank: 5

积分
209
 楼主| 发表于 2021-2-3 18:09 | 显示全部楼层
游客 222.76.67.x 发表于 2021-2-1 17:33
应该是少一个get_tile  函数

get_tile应该也可以吧,我没试            ,用的action_tile
(action_tile "LaBtn" "(setq gg 1)")
(action_tile "NtBtn" "(setq gg 2)")

(cond ((= gg 1) (setq num (- num 1) ))
              ((= gg 2) (setq num (+ num 1)))               
       
但是
对话框显示时,禁止通过屏幕进行交互操作,所以command命令不能用,需要一个定位的函数
        (setq Id (load_dialog "a.dcl"))
       
          (princ "nihao")
          (princ Id)
        (if (< Id 0)(exit))
          (if (not (new_dialog "a" Id))(exit))




          (setq num 0)

            (action_tile "LaBtn" "(setq gg 1)")
        (action_tile "NtBtn" "(setq gg 2)")

       

          ;(princ (TYPE gg))
          ;(princ gg)
          (cond ((= gg 1) (setq num (- num 1)))
              ((= gg 2) (setq num (+ num 1)))               
               
          )

        (if (< num 0)
                (setq num 1)
          )
        (if (> num M1)
                (setq num M1)
          )
        ;(start_dialog)

        ;(unload_dialog dlgId)
       
        (if (<= num M1)
          
        (progn((type num)
               (setq N1 num)
       
        ;;(REPEAT M1
          
          (setq S1 (SSNAME SX1 N1)) ;提取主图元
          (setq B1 (ENTGET S1)) ;提取子图元属性,获得关联表
                (setq COOD1 (CDR ( ASSOC 10 B1)))
                  (setq COOD2 (CDR ( ASSOC 11 B1)))



                       (command "zoom")
                  (command "C")
                  (command COOD1)
                  ;;(command COOD2)
                  (command "150")
          )
               
          
          )
        (progn (princ "已完成遍历")(exit))

微信图片_20210203180553.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表