明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 飞诗(fsxm)

[原创]★listdcl的编缉器★ 替代dcl的完美解决方案!

    [复制链接]
发表于 2007-7-7 23:40:00 | 显示全部楼层
真是个好东东。感谢楼主了!
发表于 2007-7-9 10:43:00 | 显示全部楼层
本帖最后由 作者 于 2007-7-9 17:18:47 编辑

还真是耳目一新,不错。许多年了,很少有这样的辅助DCL程序。这种出新还是值得提倡的。

1:不要和Protobox比,毕竟那是15年前的产品。

2:发现个BUG:加入Radio_column, Radio_row, Boxed_radio_column, Boxed_radio_row, Toggle和Text_part时,属性列表中的“KEY”给丢了。

3:回收站的设想不错,建议当回收站中有控件被选取,在属性列表中显示选中控件的属性,我不知道回收站的内容是否也能保存以便下次读取,如果不能,建议加上。

发表于 2007-7-9 16:34:00 | 显示全部楼层
没用过,哪位举个例子演试一下
发表于 2007-7-9 19:51:00 | 显示全部楼层
繁体与简体在word中就可以转换的
 楼主| 发表于 2007-7-9 21:57:00 | 显示全部楼层
本帖最后由 作者 于 2007-7-10 22:00:12 编辑

下面是控件数据集合,因为我是从cad中的help的copy过来的~
呵呵,还真的很多的属性没有收录到哦~
非常感谢[color="#61b713"]mmmmmm 指出来。
还有就是:dialog 也有width,height等属性CAD中的help中也没有收录
可能还有很多的属性没有收录到~
再就是如: cancel_button之类常用到的CAD中的help也没有收录,
在我的大意下也没有加入进去~
还有很多的控件与属性or BUG敬请大家指出,
在下一个版本中我一定加上~
回收站的功能本来可以做的与工作区一模一样的~
但为了为了节省有限的界面空间,也为了突出工作区的重点,
所在没有这样做了~不过我下一个版本会给回收站加一个“局部预览”
这样可以直观的看出回收站中控件属性了。
V1。2版的可以“多次导入”而不会覆盖现存于工作区的内容
导出回收站可以通过工作区导出~
导入到回收站也可以通过导入到工作区再移到回收站。
  1. ;;=========================容器控件类===============================
  2. (setq rq
  3.        '
  4. ((:dialog "对话框" initial_focus label value)
  5.   (:boxed_row      "横框架"  alignment
  6.    children_alignment children_fixed_height
  7.    children_fixed_width   fixed_height
  8.    fixed_width      height  label
  9.    width
  10.   )
  11.   (:boxed_column       "竖框架"    alignment
  12.    children_alignment  children_fixed_height
  13.    children_fixed_width     fixed_height
  14.    fixed_width       height    label
  15.    width
  16.   )
  17.   (:row       "横排列"  alignment
  18.    children_alignment children_fixed_height
  19.    children_fixed_width   fixed_height
  20.    fixed_width      height  label
  21.    width
  22.   )
  23.   (:column      "竖排列"  alignment
  24.    children_alignment children_fixed_height
  25.    children_fixed_width   fixed_height
  26.    fixed_width      height  label
  27.    width
  28.   )
  29.   (:boxed_radio_row    "横单选框"   alignment
  30.    children_alignment  children_fixed_height
  31.    children_fixed_width     fixed_height
  32.    fixed_width       height    label
  33.    width
  34.   )
  35.   (:boxed_radio_column  "竖单选框"
  36.    alignment        children_alignment
  37.    children_fixed_height
  38.    children_fixed_width fixed_height
  39.    fixed_width        height
  40.    label         width
  41.   )
  42.   (:radio_row       "横单选排列"   alignment
  43.    children_alignment  children_fixed_height
  44.    children_fixed_width     fixed_height
  45.    fixed_width       height    label
  46.    width
  47.   )
  48.   (:radio_column       "竖单选排列"   alignment
  49.    children_alignment  children_fixed_height
  50.    children_fixed_width     fixed_height
  51.    fixed_width       height    label
  52.    width
  53.   )
  54. )
  55. )
  56. ;;=========================独立控件类===============================
  57. (setq dl
  58.        '
  59. (
  60.   (:edit_box "编缉框"      action     alignment
  61.    allow_accept edit_limit    edit_width    fixed_height
  62.    fixed_width height       is_enabled    is_tab_stop
  63.    label  mnemonic      value     width
  64.    password_char
  65.   )
  66.   (:image       "图片"     action  alignment
  67.    aspect_ratio color     fixed_height fixed_width
  68.    height       is_enabled   is_tab_stop  mnemonic
  69.    value        width
  70.   )
  71.   (:image_button  "图片按扭" action        alignment
  72.    allow_accept  aspect_ratio color        fixed_height
  73.    fixed_width  height  is_enabled     is_tab_stop
  74.    mnemonic  width
  75.   )
  76.   (:button      "按扭"     action  alignment
  77.    fixed_height fixed_width  height  is_cancel
  78.    is_default   is_enabled   is_tab_stop  label
  79.    mnemonic     width
  80.   )
  81.   (:list_box "列表框"      action     alignment
  82.    allow_accept fixed_height  fixed_width   height
  83.    is_enabled is_tab_stop   label     list
  84.    mnemonic multiple_select      tabs
  85.    value  width
  86.   )
  87.   (:popup_list  "下拉框"     action  alignment
  88.    edit_width   fixed_height fixed_width  height
  89.    is_enabled   is_tab_stop  label  list
  90.    mnemonic     tabs     value  width
  91.   )
  92.   (:radio_button "单选按扭"    action     alignment
  93.    fixed_height fixed_width   height     is_enabled
  94.    is_tab_stop label       mnemonic     value
  95.    width
  96.   )
  97.   (:slider "滚动条"      action     alignment
  98.    big_increment fixed_height  fixed_width   height
  99.    label  layout       max_value     min_value
  100.    mnemonic small_increment      value
  101.    width
  102.   )
  103.   (:text       "文本"   alignment   fixed_height
  104.    fixed_width height   is_bold     label   value
  105.    width
  106.   )
  107.   (:text_part
  108.    "文本?"
  109.    label
  110.   )
  111.   (:toggle      "开关"     action  alignment
  112.    fixed_height fixed_width  height  is_enabled
  113.    is_tab_stop  label     width
  114.   )
  115.   (:spacer "空白" alignment fixed_height fixed_width height width)
  116. )
  117. )
  118. ;;=========================标准控件类===============================
  119. (setq bz
  120.        '
  121. ("spacer_0;"   "spacer_1;"
  122.   "errtile;"   "ok_only;"
  123.   "ok_cancel;"   "ok_cancel_help;"
  124.   "ok_cancel_help_errtile;"
  125.   "ok_cancel_help_info;"
  126. )
  127. )
 楼主| 发表于 2007-7-9 22:29:00 | 显示全部楼层
本帖最后由 作者 于 2007-7-9 22:41:45 编辑

发一个附加的“树状”功能:
两种树结构中
个人推荐用“资源管理器”的结构。直观可视性强。
当然如果你习惯于DCL的结构还是可以用DCL的树结构
请保存成.lsp文档 再通过“I.导入”导入成功后会出一个提示
之后就可以看到效果。~
  1. ((lambda (/ p1 p2 tree)
  2.    (setq tree
  3.    (dcl_get_popup
  4.      "本文件内共有两种树状结构可选:"
  5.      '("资源管理器树状结构" "DCL标准树状结构")
  6.      nil
  7.    )
  8.    )
  9.    (if tree
  10.      (progn
  11.        (cond
  12.   ((= tree "DCL标准树状结构")
  13.    (defun format_worklist (a / xx str2)
  14.      (strcat (fsxm-string "  " (1- (length (car a))))
  15.       (cadr a)
  16.      )
  17.    )
  18.    (alert "DCL标准树状结构加载成功 ")
  19.   )
  20.   (t
  21.    (defun format_worklist (a / xx str2)
  22.      (setq str2 (cadr a))
  23.      (setq xx (cond ((= str2 "}") "│└**End**")
  24.       ((= str2 "") "│")
  25.       (t (strcat "├" (vl-string-trim "{" str2)))
  26.        )
  27.      )
  28.      (substr (strcat (fsxm-string "│" (1- (length (car a)))) xx)
  29.       3
  30.      )
  31.    )
  32.    (alert "资源管理器树状结构加载成功 ")
  33.   )
  34.        )
  35.        (setq p1 (get_tile "work"))
  36.        (setq p2 (get_tile "lj"))
  37.        (update "work")
  38.        (update "lj")
  39.        (set_tile "work" p1)
  40.        (set_tile "lj" p2)
  41.      )
  42.      (alert "加载被取消")
  43.    )
  44. )
  45. )
  46. nil

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2007-7-10 06:21:00 | 显示全部楼层

试过了繁体版本终于看到清楚的按钮名称了,谢谢作者的用心
发现到在存档,另存,及存成dcl上面的按钮作用,
好像是提示要开启已存在的档案存档
非是另存一个文件,
不知道是不是您当初设计的意思呢?

希望能再看到您的更新作品


发表于 2007-7-10 12:50:00 | 显示全部楼层

树状结构是个好想法,支持。不过建议在主界面增加radio_button来给用户选择显示的方式会更好。没有必要在导入时提问。

 楼主| 发表于 2007-7-10 21:59:00 | 显示全部楼层

正如vken7az2p说的一样

现在的只能选取存在的档案.因为只调用了lisp中getfile函数~

当然用vlisp方法调用通用对话框也是可以有~(不过兼容性不保证)

而且我现在这几个版本只是侧重于"功能上加强"没有对细节改进!

希望大家多提意见~在下一版本中能做到的一定会加上去!

特别是关于程序功能上建议我一定会重点考虑!多谢!

发表于 2007-7-11 09:32:00 | 显示全部楼层
getfile函数是可以创建新文件的,请仔细参考getfile函数的帮助。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-19 14:51 , Processed in 0.183814 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表