找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1795|回复: 3

[研讨] 关于 OpenDCL 的 dcl_delayedinvoke 延迟函数

[复制链接]

已领礼包: 1个

财富等级: 恭喜发财

发表于 2013-5-26 09:20:54 | 显示全部楼层 |阅读模式

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

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

×
OpenDCL自带的延迟函数好像只能用于非模式窗口,而且要键盘动一下,这个函数就会被中断
大家可以试试 odcl 自带的那个例子,显示软件封面的那个倒计时动画。


演示一下
  1. ;;小东空间  
  2. (defun c:fla()
  3. (dcl_project_load "flash.odcl" t)
  4. (dcl_form_show flash_form1)
  5. )

  6. (defun c:flash_Form1_TextButton2_OnClicked (/)
  7. (setq x 14 y 14)
  8. (setq stop t speed 0.2)
  9. (dcl_Control_SetCaption flash_Form1_Label1 (rtos spedd))
  10. (smove)
  11. )
  12. (defun c:flash_Form1_TextButton3_OnClicked (/)
  13. (setq stop nil)
  14. )

  15. (defun smove()
  16. (while stop
  17.   (delay speed)
  18.   (if (and f+ (> y 256))(setq f+ nil))
  19.   (if (null f+)(setq y (- y 4)))
  20.   (if (and (null f+) (< y 12))(setq f+ t))
  21.   (if f+ (setq y (+ y 4)))
  22.   (if (and g+ (> x 364))(setq g+ nil))
  23.   (if (null g+)(progn(setq x (- x 4))
  24.   (dcl_Control_SetPicture flash_Form1_PictureBox1 102)))
  25.   (if (and (null g+) (< x 12))(setq g+ t))
  26.   (if g+ (progn(setq x (+ x 4))
  27.   (dcl_Control_SetPicture flash_Form1_PictureBox1 103)))
  28.   (dcl_Control_SetPos flash_Form1_PictureBox1 x y)
  29. ; (dcl_Control_SetPos flash_Form1_PictureBox2 c d)
  30.   (dcl_Control_Redraw flash_Form1)
  31. )
  32. )
  33. (defun c:flash_Form1_TextButton1_OnClicked (/) ;;加速
  34. (if (> speed 0.05) (setq speed (- speed 0.03)))
  35. (dcl_Control_SetCaption flash_Form1_Label1 (rtos speed))
  36. )
  37. (defun c:flash_Form1_TextButton4_OnClicked (/) ;;减速
  38. (if (< speed 2) (setq speed (+ speed 0.04)))
  39. (dcl_Control_SetCaption flash_Form1_Label1 (rtos speed))
  40. )
  41. (defun c:flash_Form1_TextButton5_OnClicked (/)
  42. (setq stop nil)
  43. (dcl_Form_Close flash_Form1)
  44. )
  45. (defun delay (sec / secs)
  46. (setq secs (getvar "date")
  47.        basetime (* 86400.0 (- secs (fix secs)))
  48.        seconds basetime)
  49. (while (not (< (+ basetime sec) seconds))
  50.     (setq secs (getvar "date")
  51.        seconds (* 86400.0 (- secs (fix secs))))   
  52.     )
  53. )



55.gif

请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:fla.rar 
下载次数:15  文件大小:13.52 KB 
下载权限: 不限 以上  [免费赚D豆]


评分

参与人数 1D豆 +5 收起 理由
牢固 + 5 好主题奖!

查看全部评分

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

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-26 10:24:31 | 显示全部楼层
模式框也应该能用,不过你要不断的 CLOSE,SHOW对话框吧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-5-26 20:08:21 | 显示全部楼层
dcl_delayedinvoke在模态对话框上是无用的!模态对话框是要在对话框关闭后才能执行其他命令,所以dcl_delayedinvoke执行的函数要在模态对话框关闭后才能执行!所以dcl_delayedinvoke函数在模态对话框里就没有任何意义了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 20:38 , Processed in 0.184754 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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