xiaocainiao
发表于 2023-12-12 10:41:09
飞雪神光 发表于 2023-12-12 10:35
没明白你说的 但是代码应该是这个意思 你在纠结变量名?变量多了也不行?
是的、我的自变量就是固定的两个、你看我给你后回复的几个代码、就能懂我的需求了
飞雪神光
发表于 2023-12-12 10:43:10
xiaocainiao 发表于 2023-12-12 10:41
是的、我的自变量就是固定的两个、你看我给你后回复的几个代码、就能懂我的需求了
那你测试这个代码了没
xiaocainiao
发表于 2023-12-12 10:44:18
飞雪神光 发表于 2023-12-12 10:43
那你测试这个代码了没
测试了啊、就是因为不行才上来问的
飞雪神光
发表于 2023-12-12 10:45:08
xiaocainiao 发表于 2023-12-12 10:44
测试了啊、就是因为不行才上来问的
那我还是不明白
xiaocainiao
发表于 2023-12-12 10:56:50
飞雪神光 发表于 2023-12-12 10:45
那我还是不明白
;设置颜色
(setq col (vl-registry-read "HKEY_CURRENT_USER\\Software\\num\" "col"))
(if col
(setq col col)
(setq col "8")
)
;设置图层
(if la
(setq la la)
(setq la "0")
)
;设置线型比例
(setq lts (vl-registry-read "HKEY_CURRENT_USER\\Software\\num\" "lts"))
(if lts
(setq lts lts)
(setq lts "1")
)
这个应该能懂吧、我就是想把这个简化搞成自定义函数
飞雪神光
发表于 2023-12-12 11:45:27
xiaocainiao 发表于 2023-12-12 10:56
;设置颜色
(setq col (vl-registry-read "HKEY_CURRENT_USER\\Software\\num\" "col"))
(if col
那不就是这个么(defun readzc (col mrz /)
(setq col (vl-registry-read "HKEY_CURRENT_USER\\Software\\NUM\\" col))
(if col
(setq col col)
(setq col mrz)
)
col
)
飞雪神光
发表于 2023-12-12 11:47:19
本帖最后由 飞雪神光 于 2023-12-12 11:49 编辑
变量名给你换一下(defun readzc (la mrz /)
(setq col (vl-registry-read "HKEY_CURRENT_USER\\Software\\NUM\\" la))
(if col
(setq col col)
(setq col mrz)
)
col
)
(readzc "图层" "红线")
"图层"传递到 la 当读取到注册表 la 也就是 "图层" 就将读取到的值赋值到col 否则就将mrz赋值到 col最后返回 col值
飞雪神光
发表于 2023-12-12 12:03:59
(defun readzc (col mrz /)
(setq col (vl-registry-read "HKEY_CURRENT_USER\\Software\\NUM\\" (vl-princ-to-string col)))
(if col
(setq col col)
(setq col mrz)
)
col
)
(readzc 'col "红线")
xiaocainiao
发表于 2023-12-12 12:27:26
飞雪神光 发表于 2023-12-12 12:03
这种不行的、之前有朋友说过这种方法、用这种方法的结果始终都是"红线"
start4444
发表于 2023-12-12 12:47:54
换个思路会不会简单点
(defun READZC (key mrz /)
(cond ((= key "col") (if (setq col (vl-registry-read "HKEY_CURRENT_USER\\Software\\NUM\\" key)) (setq col col)(setq col mrz)))
((= key "la") (if (setq la (vl-registry-read "HKEY_CURRENT_USER\\Software\\NUM\\" key)) (setq la la)(setq la mrz)))
((= key "lts") (if (setq lts (vl-registry-read "HKEY_CURRENT_USER\\Software\\NUM\\" key)) (setq lts lts)(setq lts mrz)))
)
)