冒个烟圈 发表于 2018-7-4 16:11:31

请教怎样判断DCL中edit_box的值是否修改过

如题:
比方说edit_box的key=str1
那么
    (if newstr1
      (set_tile "str1" newstr1)
      (set_tile "str1" "test");默认
    )
(action_tile "str1" "(setq newstr1 $value)")
;;;像上面这样写不能判断edit_box的值是否修改过了,每次都要用鼠标虚点几下才行
请问还有更好的方法吗?
路过的指点一下呀,谢谢!

masterlong 发表于 2018-7-4 18:35:51

edit_box支持“点击”操作吗?

冒个烟圈 发表于 2018-7-5 08:24:45

本帖最后由 冒个烟圈 于 2018-7-5 08:29 编辑

masterlong 发表于 2018-7-4 18:35
edit_box支持“点击”操作吗?
D:\捕获.PNG
可能是我没说清楚,我想用第二个框的数字2018.07.05替换第一个框的2013.00.00
图片中的第二个框,为减少输入时间设置的默认值是 2018.07.05
可是执行的时候却不起作用,要么重新输入一次才行,要么用鼠标虚点几下那串数字才行

masterlong 发表于 2018-7-5 08:59:28

建议你把动作代码设定为
(action_tile "str1" "(princ (list $key $value $reason))(princ)(setq newstr1 $value)")
然后仔细观察一下不同操作的输出

冒个烟圈 发表于 2018-7-5 09:23:57

本帖最后由 冒个烟圈 于 2018-7-5 09:25 编辑

masterlong 发表于 2018-7-5 08:59
建议你把动作代码设定为
(action_tile "str1" "(princ (list $key $value $reason))(princ)(setq newstr1...
首先感谢您的指点
可能我的功力还太差,试过了没什么效果;
测试的代码发上来,希望您抽空帮我诊断诊断,
主要函数收集于本论坛,只按自己的想法组合一下,见笑了。

masterlong 发表于 2018-7-5 09:41:09

edit_box的action生效发生在“焦点”转移之后
具体就是双引号之间的内容

你顶楼的代码
if语句只在初始话对话框时有效
action_tile语句仅仅只有一个动作
即赋值参数newstr1
并没有再次调用if语句

冒个烟圈 发表于 2018-7-5 11:01:58

masterlong 发表于 2018-7-5 09:41
edit_box的action生效发生在“焦点”转移之后
具体就是双引号之间的内容



还恳请帮忙完善一下,谢谢

nzl1116 发表于 2018-7-5 11:12:41

冒个烟圈 发表于 2018-7-5 11:01
还恳请帮忙完善一下,谢谢

(action_tile "str2" "(set_tile \"str1\" (get_tile \"str2\"))")

894560869 发表于 2018-7-7 04:21:48

仰慕版主啊 感谢分享源码!

oistre 发表于 2018-8-3 09:11:21

很好 很强大
页: [1]
查看完整版本: 请教怎样判断DCL中edit_box的值是否修改过