找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2001|回复: 6

[求助] DCL对话框

[复制链接]

已领礼包: 449个

财富等级: 日进斗金

发表于 2014-7-29 19:12:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
看了一下关中大师的DCL对话框  可惜我的电脑坏了!学习的话相当有难度  不知道哪位大师可以出手写一下 会用DCL对话框的人是不难的!附图如  要求如下:
1如假厂名打上勾 那么就按照字大小 厂名 色来生成文字  这里的难点就是读取外部TXT文件 假如TXT文件增加了则对话框中也会增加 减少的话也会减少!
2同上
现在附上关中大师的程序源码!希望高手出手相助一下  电脑坏了  学习很有难度!
  1. (vl-load-com)
  2. (defun c:test ( / dcl_id dd )

  3.   (setq dcl_id (load_dialog "test"));加载对话框文件  把对话框文件放在支持文件搜索路径下
  4.   (if (< dcl_id 0);如果对话框文件返回值为0
  5.     (PROGN
  6.       (alert "\n请把对话框文件放在支持文件搜索路径下")
  7.       (exit)
  8.     )
  9.   )
  10.   (new_dialog "test" dcl_id);启动对话框
  11.   (test_sub_3);数据成表
  12.   (show_list "wlist" word_list);增加列表  wlist插图比例返回值
  13.   (if (and
  14.   tt
  15.   (vl-position tt word_list)
  16.       )
  17.     (progn
  18.       (set_tile "wlist" (itoa (vl-position tt word_list)));设定属性值
  19.       (set_tile "wlist1" tt);wlist1编辑返回值 (setq tt (get_tile "wlist1"))
  20.     )
  21.     (progn
  22.       (set_tile "wlist" "0")
  23.       (set_tile "wlist1" "A")
  24.     )
  25.   )

  26.   (action_tile "wlist" "(test_sub_2 $value)")
  27.   (action_tile "accept" "(ok_test)(done_dialog 1)")
  28.   (action_tile "cancel" "(DONE_DIALOG 0)")
  29.   (setq dd (start_dialog))
  30.   (if (= dd 1)
  31.     (princ "\n****操作完成****")
  32.     (princ "\n****操作已取消****")
  33.   )
  34.   (princ)
  35. )


  36. (defun test_sub_1 (txt / dat_file ff);写入文件
  37.   (setq dat_file (findfile "test.TXT"))
  38.   (setq ff (open dat_file "a"))
  39.   (write-line txt ff);写入文件到FF文件中
  40.   (close ff)
  41. )

  42. (defun test_sub_2 (vvs)
  43.   (set_tile "wlist1" (nth (atoi vvs) word_list))
  44. )

  45. ;;; 读文本数据成表
  46. (defun test_sub_3 (/ data datalist ff file datalist1 n i)
  47.   (setq file (findfile "test.TXT"));查找这个文件
  48.   (setq ff (open file "R"));以只读方式打开这个文件
  49.   (setq data (read-line ff));读取这个文件
  50.   (setq datalist '());建一个新的表
  51.   (while data
  52.     (setq datalist (cons data datalist))
  53.     (setq data (read-line ff))
  54.   )
  55.   (close ff)
  56.   (setq word_list (reverse datalist))
  57.   (prin1)
  58. )


  59. (defun ok_test (/ data datalist ff file)
  60.   (setq tt (get_tile "wlist1"))
  61.   (if (= (member tt word_list) nil)    ; 如果编辑栏的内容不在列表中则将其增?
  62.                ; 拥搅斜?
  63.     (progn
  64.       (test_sub_1 tt)
  65.       (setq file (findfile "test.TXT"))
  66.       (setq ff (open file "R"))
  67.       (setq data (read-line ff))
  68.       (setq datalist '())
  69.       (while data
  70.   (setq datalist (cons data datalist))
  71.   (setq data (read-line ff))
  72.       )
  73.       (close ff)
  74.       (setq word_list (reverse datalist))
  75.     )
  76.   )
  77. )


  78. (defun show_list (key newlist)
  79.   (start_list key);增加或者删除列表
  80.   (mapcar
  81.     'add_list ;增加列表进去
  82.     newlist
  83.   )
  84.   (end_list);结束列表
  85. )

对话框.jpg
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2014-7-29 19:13:17 | 显示全部楼层

  1. test:dialog {
  2.          :popup_list {
  3.             key = "wlist" ;
  4.             label = "插图比例" ;
  5.         }
  6.         :edit_box {
  7.             alignment = centered ;
  8.             key = "wlist1" ;
  9.         }
  10.     :spacer {}
  11.     ok_cancel;
  12. }

关中老师的对话框!看不懂!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-7-29 19:16:33 | 显示全部楼层
既然读取 TXT 来变换,那勾选的时候就再一次 TXT

点评

不大懂这些!如果不勾选的话那就不用生成第一行的厂名 只生成第二行的!我是这样想的 没有学过DCL 电脑也坏了 不然也不敢上来麻烦大家!师兄如果懂的话而且有空不妨帮我一下!  详情 回复 发表于 2014-7-29 19:20

评分

参与人数 1D豆 +5 收起 理由
xtdwynij + 5 技术引导讨论和指点奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2014-7-29 19:20:46 | 显示全部楼层
csharp 发表于 2014-7-29 19:16
既然读取 TXT 来变换,那勾选的时候就再一次 TXT

不大懂这些!如果不勾选的话那就不用生成第一行的厂名  只生成第二行的!我是这样想的  没有学过DCL   电脑也坏了 不然也不敢上来麻烦大家!师兄如果懂的话而且有空不妨帮我一下!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2018-11-14 14:33:47 | 显示全部楼层
如何读取外部TEXT文件  我也正好不会   
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2018-11-16 13:05:38 | 显示全部楼层
test:dialog{
label="文字应用";
:boxed_row
{
label="厂名";
:edit_box{
         label= "厂名开关";
         key= "edit_q";
         edit_width = 15;
         
}

:edit_box{
         label= "字体高度";
         key= "edit_h";
         edit_width = 15;
}
  :popup_list
       {
          key = "Combo1" ;
          label = "厂名" ;
          width = 15.5 ;
          height = 1.5 ;
                }
  :popup_list
       {
          key = "Combo2" ;
          label = "颜 色" ;
          width = 15.5 ;
          height = 1.5 ;
                }              
            
}
:boxed_row
{
label="孔";
:edit_box{
         label= "孔开关";
         key= "edit_a";
         edit_width = 15;
         
}

:edit_box{
         label= "字体高度";
         key= "edit_b";
         edit_width = 15;
}
  :popup_list
       {
          key = "Combo3" ;
          label = "直 径" ;
          width = 15.5 ;
          height = 1.5 ;
                }
  :popup_list
       {
          key = "Combo4" ;
          label = "孔类型" ;
          width = 15.5 ;
          height = 1.5 ;
                }              
            
}
ok_cancel;

}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2018-11-16 13:09:12 | 显示全部楼层
看看可否,学习参考之用。
BB2616AX])QO60XD5V9{}LB.png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-14 20:55 , Processed in 0.346880 second(s), 51 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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