【实例简介】

[jjj-dcl-make lst aaa bbb]

函数名:jjj-dcl-make

参数

lst:dcl控件列表

aaa:dcl启动时要预先执行的函数名,参数类型为字符串或字符串表,如无预先要执行的函数,则用""空字符串占位。

示例:"(abc)"     '("(abc)" "(bcd)")

bbb:是否保留dcl文件选项,参数类型为整数。0为不保存,1为保存,保存地址为CAD根目录下的support文件夹中,保存名为dcl标题。

一.lisp表中各控件及组件的书写方式

控件及组件                                 lisp表格式                                                   示例

编辑框edit_box             ("控件类型" "控件显示名" "键值" "宽度" "函数名")                  ("bj" "输入" "su" "10" "(abc)")

文字text                   ("控件类型" "文字内容" "键值" "宽度" "函数名")                    ("wz" "文字内容" "wb" "10" "(abc)")

按钮button                 ("控件类型" "按钮名称" "键值" "宽度" "高度" "函数名")             ("an" "计算" "js" "10" "2" "(abc)")

按钮button                 ("控件类型" "按钮名称" "键值" "宽度" "高度" "函数名" "返回值")    ("an1" "确定" "qd" "10" "2" "(abc)" 1)

图像块image_block          ("控件类型" "键值" "宽度" "高度" "图像颜色")                      ("tx" "tx1" "10" "5" "256")

图标按钮icon_image         ("控件类型" "键值" "宽度" "高度" "函数名" "返回值")               ("tx1" "tb1" "10" "5" "(abc)" 1)

单选按钮radio_button       ("控件类型" "控件显示名" "键值" "预设值" "函数名")                ("dx" "极坐标" "zb" "1" "(abc)")

复选按钮toggle             ("控件类型" "控件显示名" "键值" "预设值" "函数名")                ("fx" "极坐标" "zb" "1" "(abc)")

列表框list_box             ("控件类型" "控件显示名" "键值" "宽度" "高度" "函数名")           ("lb" "种类" "zl" "10" "30" "(abc)")

下拉列表框popup_list       ("控件类型" "控件显示名" "键值" "宽度" "预设值" "函数名")         ("xllb" "种类" "zl" "15" "0" "(abc)")

滑杆slider                 ("控件类型" "键值" "宽度" "最小值" "最大值" "预设值" "函数名")    ("hg" "gl" "20" "0" "100" "50" "(abc)")

密码框edit_box             ("控件类型" "控件显示名" "键值" "宽度" "密码形态" "函数名")       ("mm" "密码" "mima" "20" "*" "(abc)")

行列row{                   ("组件" "组件属性" "组件对齐方式")                                ("row{" "kd" "zb")

纵列column{                ("组件" "组件属性" "组件对齐方式")                                ("column{" "kd" "zb")

行框boxed_row{             ("组件" "组件显示名" "组件属性" "组件对齐方式")                   ("boxed_row{" "文字内容" "kd" "zb")

纵框boxed_column{          ("组件" "组件显示名" "组件属性" "组件对齐方式")                   ("boxed_column{" "文字内容" "kd" "zb")

右括号}                    ("组件")                                                          ("}")

空一行spacer               ("组件")                                                          ("spacer;")

确定、取消组合键ok_cancel  ("组件")                                                          ("ok_cancel;")

确定键ok_noly              ("组件")                                                          ("ok_only;")

取消键cancel_button        ("组件")                                                          ("cancel_button;")

二.注意事项

1.所有的[控件类型、组件],这两种参数的书写方式为固定不可变的,所有参数的书写顺序也是不可变的。

2.所有控件及组件的参数中(行列、纵列、行框、纵框除外),[控件显示名、键值、文字内容、按钮名称、组件显示名、宽度、高度]这些参数

可不提供(如不提供参数时,必须用""空字符串占位)。图像块控件的[图像颜色]参数,以及其他控件的[函数名、返回值]参数均可缺省不提

供,无需用""空字符串占位。其余参数均为必填参数,且不可用""空字符串代替,所填参数也必须是dcl所指定的参数类型。an1型控件与tx1

型控件为特殊控件,点击此类控件后会关闭dcl,并返回参数表中指定的返回值,如提供了返回值而未提供函数名时,函数名参数则需用""

空字符串占位。返回值参数类型为整数,参数1效果等同于点击了确定键,0效果则等同于取消键。如只提供了函数名而缺省了返回值参数时

则默认返回0

3.函数还提供了一种控件紧贴模式,2个控件之间可以相互紧贴没有间隙。支持的控件有编辑框控件、an型按钮控件,使用时仅需在控件类型前

加一个小写t即可。示例:普通型编辑框:("bj" "输入" "su" "10"),紧贴型编辑框:("tbj" "输入" "su" "10")。

4.行列、纵列以及行框、纵框的参数中,除行框、纵框的[组件显示名]参数不提供时,需由""空字符串占位外,[组件属性、组件对齐方式]两种

参数可缺省不提供,不提供时无需用""空字符串占位。2种参数类型为字符串,书写方式不可更改,具体含义如下:

(1)组件属性(全部为小写)

"kd"   开启使用者自定义宽度功能

"gd"   开启使用者自定义高度功能

(2)组件对齐方式(全部为小写)

"sm"   顶部对齐方式

"xm"   底部对齐方式

"zj"   中间对齐方式

"zb"   左边对齐方式

"yb"   右边对齐方式

5.[空一行]、[确定、取消组合键]、[确定键]、[取消键],此类组件在书写时需在后面添加分号。

6.lisp表中第一项为dcl的定义名,和dcl的标题2个参数,参数类型为字符串,后续项则按dcl格式自行编排。

完整示例:

(defun c:tt(/ dcl_lst)

(setq dcl_lst (list'("dcl" "DCL测试")

'("boxed_column{" "两点画线")

'("row{")

'("bj" "点1x:" "d1x" "5")

'("bj" "点1y:" "d1y" "5")

'("}")

'("row{")

'("bj" "点2x:" "d2x" "5")

'("bj" "点2y:" "d2y" "5")

'("}")

'("an" "绘制直线" "hz" "27" "")

'("}")

'("ok_cancel;")

'("}")

)

)

(jjj-dcl-make dcl_lst "" 0)

)

三.dcl排版技巧

1.[row{、column{、boxed_row{、boxed_column{]组件其实也可以把它看成是一个控件,给它附带fixed_width=true属性时,它会控制自身的

宽度。其宽度为它所携带控件群集的最大宽度,然后搭配alignment属性,可以使群集在整个dcl水平方向中处于指定位置。如不带fixed_wi

dth=true属性,群集的宽度将是弹性的,它会调整自身宽度,以最大程度在水平方向占满dcl。垂直方向方法相同,只需将fixed_width=true

属性改为fixed_height=true即可。示例::boxed_row{label="群集";alignment=centered;fixed_width=true;(此技巧使用方法请查阅注意事

项中第4条说明)

2.图像类控件的宽度值是高度值的1倍,就可以使图像控件成正方形显示。

【实例截图】

【核心代码】

jjj-dcl-make函数

├── DCL测试样本.lsp

├── jjj-dcl-make函数.LSP

└── jjj-dcl函数详解.txt

0 directories, 3 files

dcl并列控件 lisp_CAD autolisp jjj-dcl-make函数相关推荐

  1. dcl并列控件 lisp_飞诗Lisp编辑器下载

    飞诗Lisp编辑器是一款页面简洁友好,功能强大的对话框代码生成软件,飞诗Lisp编辑器是一款很便利的进行CAD二次开发的工具,具有很多很强大的功能.此版本仅供个人学习.研究之用,禁止非法传播或用于商业 ...

  2. 验证控件jQuery Validation Engine调用外部函数验证

    在使用jQuery Validation Engine的时候,我们除了使用自带的API之外,还可以自己自定义正则验证.自定义正则验证上一篇已经讲过了,如果想使用自定义函数进行验证怎么办?其实这个控件有 ...

  3. vs2010添加OCX控件并调用OCX中的函数

    第一种方法: 在会话框上右键选择插入ActiveX控件 然后在你的控件上右键选择添加变量,输入变量名,比如m_ocx1,然后就可以用这个变量调用你OCX里的函数了,例如:m_ocx1.init(); ...

  4. MFC Static控件派生类,实现对函数图像的绘制。

    功能设计: 实现画出函数图像(散点图,连线很简单,有最多8个图例),同时可以将图表保存下来. 头文件 /************************************************ ...

  5. MFC之使用 Windows 标准控件

    使用 Windows 标准控件 为了提高常用代码的复用性,VC 使用控件将常用的诸如用户输入.操作数据等功能封装起来.控件通常放在对话框或工具栏中,分为 3 种:Windows 标准控件.Active ...

  6. VC使用ActiveX控件常见问题

    转自:http://lingchuangsong.blog.163.com/blog/static/126932322008631104133309/ 一方面,它表示将你联系到Microsoft.In ...

  7. VC++ OCX 控件注册

    转自:http://www.cctry.com/thread-5334-1-1.html 方法一:在dos或Windows命令行下运行:regsvr32 ocxname.ocx 注册 示例: regs ...

  8. java 判断ocx是否存在_OCX控件的注册卸载,以及判断是否注册

    方法一:在dos或Windows命令行下运行:regsvr32 ocxname.ocx 注册 示例: regsvr32 netshare.ocx     //注册netshare.ocx控件 regs ...

  9. ActiveX控件和它的容器

    1.COM基础 2.ActiveX控件及实现 3.ActiveX控件容器及实现 4.总结 1.COM基础 COM是一种组件开发技术, 它实际上是一种在二进制层上兼容的软件开发方法的规范. COM技术是 ...

最新文章

  1. Hello Android – 迈出android开发第一步
  2. linux安装hadoop记录
  3. Find the AFei Numbers
  4. cpythonjavagolang_cpython:列表对象(PyListObject)的扩容机制
  5. 解决:Intellij idea 启动项目报错 error:java: 无效的源发行版: 8
  6. 【转】横向扩展与纵向扩展
  7. SpringBoot第八篇:整合MyBatis-Generator
  8. WPF ----在UserControl的xaml里绑定依赖属性
  9. 阿里内部平台VS火山引擎后端开发,拿头比?
  10. php list each搭配循环
  11. linux 下tftp服务器搭建,CentOS 6下搭建TFTP服务器
  12. 消消乐 游戏算法html,Vue实现开心消消乐游戏算法
  13. ios storyboard 传参 返回传参(segue)
  14. excel公式里用html,excel中value是什么函数?
  15. 利用CSS,实现翻页效果
  16. JTopo添加动态连线
  17. ubuntu 使用代理服务器 squid
  18. UE使用技巧之---去空格
  19. lm35温度转换c语言,Arduino基础入门篇29—模拟温度传感器LM35
  20. 网易我的世界手游服务器怎么发全体信息,网易我的世界手机怎么私聊 | 手游网游页游攻略大全...

热门文章

  1. 人工势场路径规划-matlab代码
  2. cxfreeze的打包实践
  3. 手机自动化测试工具实现
  4. Java lang包介绍
  5. 【愚公系列】2023年06月 网络安全(交通银行杯)-UU
  6. 想起了就加一句#-_-
  7. 实战笔记|Go语言构建微服务一站式解决方案
  8. Unity Ragdoll(布娃娃系统)
  9. php网络编程自学手册 pdf,葛丽萍PHP网络编程技术详解 pdf扫描版
  10. react中英文切换二