DCL中的List如何实现增加修改删除.并读取出来?
DCL中的List如何实现增加修改删除.并读取出来?DCL源码如下
:dialog {
label = "SHEBEI" ;
:list_box {
key = "CC" ;
}
:edit12_box {
key = "C1" ;
label = "下端直径" ;
}
:edit12_box {
key = "C2" ;
label = "上端直径" ;
}
:edit12_box {
key = "C3" ;
label = "厚度" ;
}
:edit12_box {
key = "C4" ;
label = "高度" ;
}
:button {
key = "add" ;
label = "增加" ;
}
:button {
key = "del" ;
label = "删除" ;
}
:button {
key = "xiu" ;
label = "修改" ;
}
ok_cancel;
}
data:image/png;base64,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
没太搞懂啥意思。你是想在对话框操作的时候,因为某些控件的值变化而让list_box 控件里的内容发生变化么?如果想让list_box 控件里的内容发生变化,一个代码段就是:
(start_list "listboxkey")
(mapcar 'add_list lst)
(end_list)
你只要让另一个控件的动作能修改 lst 的值,然后再加上这一段就可以了啊。 vormittag 发表于 2022-11-18 16:18
没太搞懂啥意思。你是想在对话框操作的时候,因为某些控件的值变化而让list_box 控件里的内容发生变化么? ...
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=85764&highlight=dc,目的就是和这个帖子内容一样,底下输入数据后显示到上边list上,一行一行的 请教一下,有没有关于:dcl中的list如何完成增加,删除,导入,修改,清空等 示例学习一下呢 list控件的增加,删除,导入,修改,清空其实都一回事,都可以先修改好表,然后通过add_list实现
至于导入,比如从外部文件导入,需要先读取外部文件的数据,列成LST表即可,至于增加,删除,修改,实际上都是对lst表进行相应的处理,得到处理后的表,再用沙发上的代码把数据呈现在DLC的list控件上 本帖最后由 wzg356 于 2022-11-20 23:25 编辑
就一个对话框要做什么,取得什么数据,输出什么
可以参考下面这个
;(autodcl+- '("a" "b" "c"))
(defun autodcl+- (lst / adkkl ff f i n id e dd)
(defun adkkl(lst)(start_list "kkl")(mapcar 'add_list lst)(end_list))
(setq ff (vl-filename-mktemp "temp.dcl") f (open ff "w"))
(write-line "MY_SS: dialog{label=\"dcl+-\";" f)
(write-line ":list_box{label=\"\";key=\"kkl\";}" f)
(write-line ":edit_box{label=\"\";key=\"kke\";}" f)
(write-line ":row{: button{label = \"+1\";key = \"kk+\";}" f)
(write-line " : button{label = \"-1\";key = \"kk-\";}}" f)
(write-line " ok_cancel;}" f)
(close f)
(setq id (load_dialog ff))
(new_dialog "MY_SS" id)(get_tile "kke")
(adkkl lst)
(action_tile "kk+"
(strcat "(if(and(<= (length lst) 10)(read(setq e(get_tile \"kke\"))))"
"(adkkl(setq lst(cons e lst)))(alert \"非法\"))")
)
(action_tile "kk-" "(if(> (length lst) 1)(adkkl(setq lst(reverse(cdr(reverse lst)))))(alert \"非法\"))")
(setq dd(start_dialog))
(unload_dialog Id)(vl-file-delete ff)
(if(= 1 dd)lst)
)
各位大虾,目前就是删除和修改调试不出来,源码如下,求指教
shebei1:dialog {
label = "SHEBEI" ;
:list_box {
key = "list1" ;
}
:edit12_box {
key = "C1" ;
label = "下端直径" ;
}
:edit12_box {
key = "C2" ;
label = "上端直径" ;
}
:edit12_box {
key = "C3" ;
label = "厚度" ;
}
:edit12_box {
key = "C4" ;
label = "高度" ;
}
:button {
key = "add" ;
label = "增加" ;
}
:button {
key = "del" ;
label = "删除" ;
}
:button {
key = "edit" ;
label = "修改" ;
}
:button {
key = "del0" ;
label = "清空" ;
}
ok_cancel;
}
(defun c:tt (/ addl DCL_1);
(SETQ DCL_1 (LOAD_DIALOG "list.dcl"))
(NEW_DIALOG "shebei1" DCL_1)
(ACTION_TILE "accept" "(DONE_DIALOG)")
(action_tile "add" "(add0)")
(action_tile "del" "(dell0)")
(action_tile "del0" "(delist)")
(action_tile "edit" "(edit)")
(action_tile "list1" "(list1 $key $value $reason)")
(defun list1(key value reason)
(print key)
(print value)
(print reason)
)
;;;(set_tile "Text1" (nth (read (get_tile "List1")) List1_nums))
(action_tile "cancel" "(cancel)")
;(action_tile "list1" "(inlist)")
(START_DIALOG)
(UNLOAD_DIALOG DCL_1)
)
(defun add0 ();增加
(setq MyList (append MyList (list (strcat(get_tile "C1")"/"(get_tile "C2")"/"(get_tile "C3")"/"(get_tile "C4")))))
(princ "\n MyList = ") (princ MyList);Erase_DV
(getstring "\nPress Enter to continue...");Erase_DV
(if MyList
(progn
(start_list "list1" )
(foreach n MyList
(add_list n)
)
(end_list)
)
)
)
;(defun inlist ()
; (start_list "List1");直列表 {"List1"} 初始化
; (mapcar 'add_list MyList);添加列表项
; (end_list)
;)
(defun delist ();清空
(start_list "list1" 3 0);直列表 {"List1"} 初始化
(mapcar 'add_list nil);添加列表项
(end_list)
(setq MyList nil)
)
;=============此段代码有问题============
(defun dell0 ();删除
(setq MyList (vl-remove(NTH(get_tile "List1") ) MyList))
(start_list "List1");直列表 {"List1"} 初始化
(mapcar 'add_list MyList);添加列表项
(end_list)
)
(defun edit ();修改
(setq MyList (subst (get_tile "v1") (nth (read (get_tile "List1")) MyList) MyList))
(start_list "List1");直列表 {"List1"} 初始化
(mapcar 'add_list MyList);添加列表项
(end_list)
)
求各位大侠知道
页:
[1]