找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2016|回复: 14

[已解决] 怎么在GRID格子的第一列添加CHECKBOX?

[复制链接]
发表于 2013-4-26 08:23:17 | 显示全部楼层 |阅读模式

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

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

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

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-4-26 11:20:38 | 显示全部楼层

使用:
  1. (dcl_Grid_SetCellCheckState HatchArea_Grid Row [as Long] Column [as Long] State [as Integer])
复制代码
QQ截图20130426111835.png


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

使用道具 举报

 楼主| 发表于 2013-4-27 01:08:11 | 显示全部楼层
[pcode=lisp,true];(gxl-AutoLoadODclArx) 自动加载OpenDcl函数
;; 无参数 By Gu_xl
(defun gxl-AutoLoadODclArx  (/ loaded fn v fnn)
  ;;系统已安装OpenDcl的加载方式
  (if (and
        (not dcl_getversionex) ;_ OpenDcl未加载
        (= 2 (boole 1 (getvar "DEMANDLOAD") 2))
        )
    (VL-CATCH-ALL-APPLY 'vl-cmdf (list "opendcl")) ;_ 调用OpenDcl命令加载OpenDcl
    )
  (if (not dcl_getversionex) ;_ OpenDcl仍未加载
    ;;按AutoCAD的不同版本搜索opendcl.arx文件进行加载
    (cond
      ((= "16" (setq v (itoa (atoi (getvar 'acadver)))))
       (if
         (setq fnn (findfile (setq fn (strcat "opendcl." v ".arx"))))
          (setq loaded (arxload fnn "1"))
          (setq loaded "2")
          )
       )
      ((or (= "17" v) (= "18" v) (= "19" v))
       (if (= "x86" (getenv "PROCESSOR_ARCHITECTURE")) ;_ 32位系统
         (if (setq fnn
                    (findfile (setq fn (strcat "opendcl." v ".arx")))
                   )
           (setq loaded (arxload fnn "1"))
           (setq loaded "2")
           )
         ;;64位系统
         (if (setq fnn
                    (findfile (setq fn (strcat "opendcl." v "x64.arx")))
                   )
           (setq loaded
                  (arxload fnn
                           "1"
                           )
                 )
           (setq loaded "2")
           )
         )
       )
      (t (Setq loaded "2"))
      )
    (setq loaded "3") ;_ 已加载
    )
  ;; 加载OpenDcl失败,直接中断程序
  (if (= "1" loaded)
    (progn
      (princ (strcat fn "加载失败!程序将退出!"))
      (exit)
      )
    (if        (= "2" loaded)
      (progn
        (princ
          (strcat "未找到对应的\"" fn "\"文件!程序将退出!"))
        (exit)
        )
      )
    )
  ;;返回3,表示加载成功
  loaded
  )
;;(gxl-Load_ODCL_Project projname reload password alias)
;;功能:加载OpenDcl工程
;;参数:projname = 工程名称字串(后缀为"*.odcl"、"*.odcl.lsp"或不带后缀)或者OpenDcl工程数据表
;;      reload =  T 强制重载工程 or nil 若已加载,则什么也不干
;;      password = 设定密码字串 or nil
;;      alias = 替代项目关键字 or nil
;; By Gu_xl
(defun gxl-Load_ODCL_Project
       (projname reload password alias / bytes rtype Projects e)
  (cond
    ((null dcl_project_import)
     (prompt "OpenDCL未加载...\n")
     )
    ((= 'list (type projname)) ;_ projname 为OpenDcl工程数据表
     (dcl_project_import projname password alias)
     )(setq projname "estateodcl.odcl.lsp")
    ((and
       (progn
         (if (= ".LSP"
                 (substr (strcase projname) (- (strlen projname) 3))
                 )
           (setq projname (substr projname 1 (- (strlen projname) 4)))
           )
         (if (/= ".ODCL"
                 (substr (strcase projname) (- (strlen projname) 4))
                 )
           (setq projname (strcat projname ".odcl"))
           )
       (setq bytes (vl-get-resource projname))
         )
       (eq 'str (setq rtype (type bytes)))
       (not (eq "" bytes))
       ) ;_ 从打包的资源文件中读取OpenDCL工程
     (if reload
       (dcl_project_import bytes password alias)
       (if (or
             (not (setq Projects (dcl_GetProjects)))
             (not (member (strcase (vl-filename-base projname))
                          (mapcar 'strcase Projects)
                          )
                  )
             )
         (dcl_project_import bytes password alias)
         )
       )
     )
    ;;查找OpenDCL工程文件进行加载
    ((if (not (VL-CATCH-ALL-ERROR-P
                (setq e (VL-CATCH-ALL-APPLY
                          'dcl_project_load
                          (list (findfile projname) reload alias)
                          )
                      )
                )
              )
       e
       )
     )
    )
  )
;;以上两个通用函数函数请放在任何一个OpenDcl程序的最开始

;;方法一、方法二的程序代码;;主程序
; 以下命令确保加载适合的 OpenDCL ARX 文件。
(command "OPENDCL")
(defun c:tst_Form1_OnInitialize ()
   (gridfill)
)
   

(defun gridfill()
    (dcl_Grid_Clear tst_Form1_apple-grid)
    (dcl_Grid_SetCellCheckState tst_Form1_grid 1 1 1)
     (dcl_Grid_SetCellText tst_Form1_grid 1 1 "裸奔的花猫")
     )

;;主程序
(defun c:cs ()
    (gxl-AutoLoadODclArx)
    (gxl-Load_ODCL_Project "tst.odcl" nil nil nil)
   ; 加载tst.odcl 文件。
     ;(dcl_Project_Load "tst" T)
     (dcl_Form_Show tst_Form1)   
   (princ)
)
[/pcode]

tst.odcl

1.64 KB, 下载次数: 13, 下载积分: D豆 -1 , 活跃度 1

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

使用道具 举报

 楼主| 发表于 2013-4-27 01:09:39 | 显示全部楼层
根据版主的提示写了上面的代码,但是还是无法显示添加的CHECKBOX和文字,请版主帮忙看下上面代码问题在哪,谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-4-27 07:43:06 | 显示全部楼层

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

使用道具 举报

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

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-4-27 08:02:36 | 显示全部楼层
本帖最后由 牢固 于 2013-4-27 08:07 编辑

Grid

Grid

首先将 Grid 的Row header 属性设为 False!

Grid

Grid

选择Grid,然后右键打开菜单,点击属性,弹出窗口:
03.jpg
选择 Columns标签,将Index0的 Style属性改为 1 - Check Boxes,应用。
至此,第一列的checkbox属性设置完成!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-4-27 08:02:47 | 显示全部楼层

首先将 Grid 的Row header 属性设为 False!

选择Grid,然后右键打开菜单,点击属性,弹出窗口:

选择 Columns标签,将Index0的 Style属性改为 1 - Check Boxes,应用。
至此,第一列的checkbox属性设置完成!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-27 08:55:33 | 显示全部楼层
[pcode=lisp,true];;主程序
(defun c:cs ()
    (gxl-AutoLoadODclArx)
    (gxl-Load_ODCL_Project "tst.odcl" nil nil nil)
   ; 加载tst.odcl 文件。
     (dcl_Project_Load "tst")     
     (dcl_Form_Show tst_Form1)
     (dcl_Grid_SetCellCheckState tst_Form1_grid 1 1 1)
   
   (princ)
)
[/pcode]
版主,还是不行啊
按照上面说得设置

tst.odcl

1.61 KB, 下载次数: 12, 下载积分: D豆 -1 , 活跃度 1

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

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-4-27 09:49:02 | 显示全部楼层
裸奔的花猫 发表于 2013-4-27 08:55
;;主程序
(defun c:cs ()
    (gxl-AutoLoadODclArx)

当然不行啦!
你需要在窗口的OnInitialize事件中添加Grid增加格字的代码,比如:
[pcode=lisp,true];;主程序
(defun c:cs ()
    (gxl-AutoLoadODclArx)
    (gxl-Load_ODCL_Project "d:\\tst.odcl" t nil nil)
   ; 加载tst.odcl 文件。
     (dcl_Project_Load "tst")     
     (dcl_Form_Show tst_Form1)
   
   (princ)
)
(defun c:tst_Form1_OnInitialize (/)
  (dcl_Grid_AddString tst_Form1_grid "7\t \t0")
  (dcl_Grid_AddString tst_Form1_grid "2\t 1\t3")
)
[/pcode]
04.jpg

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-4-27 10:08:39 | 显示全部楼层
裸奔的花猫 发表于 2013-4-27 08:55
;;主程序
(defun c:cs ()
    (gxl-AutoLoadODclArx)

QQ截图20130427100210.png

G版说的对,在(dcl_Form_Show tst_Form1)后的代码是不会被执行的,只有在对话框关闭后才执行下面的。ODCL的机制就是都要通过回调事件去执行程序代码,你的所有代码都要通过响应一个特定的事件去执行。

你想控制对话框一运行就执行的代码,放到OnInitialize中。





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

使用道具 举报

已领礼包: 2688个

财富等级: 家财万贯

发表于 2013-4-27 10:13:30 | 显示全部楼层
倒是显示没问题,但是还是不能达到楼主说的效果
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-4-27 10:14:58 | 显示全部楼层
zyhandw 发表于 2013-4-27 10:13
倒是显示没问题,但是还是不能达到楼主说的效果

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

使用道具 举报

 楼主| 发表于 2013-4-27 14:28:16 | 显示全部楼层
XDSoft 发表于 2013-4-27 10:14
学东西就是一步步来,让楼主看看,如果还需要改进,大家在继续讨论。

[pcode=c,true]GRID表格支持的44种类型
0        decide at run time            运行时再决定                              
1        check boxes                多选框
2        option buttons             单选框
3        switchable images            可切换的图像
4        ellipses  buttons             椭圆形按钮
5        pick buttons                 选择按钮
6        strings                     字符串
7        angle units                 角度单位
8        integers                    整数
9        autocad numeric units        AutoCAD数字单位
10        uppercase                  大写字母
11        lowercase                  小写字母
12        password                   密码
13        multi line strings            多行字符串
14        currency                     货币
15        date                        日期
16        time                        时间
17        percentage                  百分比
18        drop down list               下拉框
19        arrow head list               箭头列表
20        autocad color list             AUTOCAD颜色列表
21        text style list                 文字样式列表
22        plot style name list            打印样式名称列表
23        plot style table list             打印样式表
24        plotter list                    打印机列表
25        font list                      字体列表
26        drive list                     驱动列表
27        layer  list                   图层列表
28        dim style list                 标注样式列表
29        image list                    图像列表
30        autocad colors                AutoCAD颜色
31        true colors                   真彩色
32        line weights                  线宽
33        linetypes                     线性
34        directories                    目录
35        files                         文件
36        strings combo                 字符串组合
37        angle units combo              角度单位组合
38        integers combo                整数组合
39        autocad numeric unit            AUTOCAD数字单元
40        uppercase combo               大写字母组合
41        lowercase combo               小写字母组合
42        symbol name                   符号名称
43        symbol name combo             符号名称组合
[/pcode]谢谢大家的解答,GRID功能的确很强大需要慢慢研究,翻译了一下GRID支持的44种类型,希望初学者能有些作用

评分

参与人数 2D豆 +2 贡献 +1 收起 理由
XDSoft + 1 出题引导交流奖!
牢固 + 2 有始有终奖!

查看全部评分

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 19:01 , Processed in 0.463868 second(s), 64 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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