明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3055|回复: 6

[OpenDCL] OpenDCL怎么让对话框自动关闭

[复制链接]
发表于 2011-4-28 17:35:32 | 显示全部楼层 |阅读模式
RT,比如对话框出现延时5秒后自行关闭。谢谢各位。
发表于 2011-4-28 22:55:31 | 显示全部楼层
(dcl_DelayedInvoke 5000 FunctionName [as String])
或(command "delay" 5000)
(dcl_Form_Close Test_Form1 {DialogStatus [as Long]}) ;关闭对话框

;详看OpenDcl的Splash.lsp例子
发表于 2011-4-28 23:31:48 | 显示全部楼层
自动关闭对话框这种有什么用呢?感觉没有地方比较需要这种
 楼主| 发表于 2011-4-29 08:50:06 | 显示全部楼层
回复 jh1005 的帖子

非常感谢~~
 楼主| 发表于 2011-4-29 08:55:23 | 显示全部楼层
回复 jh1005 的帖子

还是不能自动关闭对话框,需要鼠标点击关闭才行。。
 楼主| 发表于 2011-4-29 09:00:44 | 显示全部楼层
回复 jh1005 的帖子
  1. ;;;
  2. ;;; Miscellaneous Sample
  3. ;;;
  4. ;;; This sample demonstrates miscellaneous controls.
  5. ;;;

  6. ;; Main program
  7. (defun c:Splash (/ cmdecho)

  8.         ;; Ensure OpenDCL Runtime is (quietly) loaded
  9.         (setq cmdecho (getvar "CMDECHO"))
  10.         (setvar "CMDECHO" 0)
  11.         (command "_OPENDCL")
  12.         (setvar "CMDECHO" cmdecho)

  13.         ;; Load the project
  14.         (dcl_Project_Load (*ODCL:Samples:FindFile "Splash.odcl"))

  15.         ;; Show the main form
  16.         (dcl_Form_Show splash_Form1)
  17.         ;; This is a modeless form, so (dcl_Form_Show) returns immediately,
  18.         ;; leaving the event handlers to manage the form.

  19.         (setq *Count* 4)
  20.         (C:CloseSplash)

  21.         (princ)
  22. )

  23. (defun C:CloseSplash ()
  24.         (dcl_Control_SetCaption splash_Form1_Label1 (strcat "Loading..." (itoa *Count*)))
  25.         (setq *Count* (1- *Count*))
  26.         (if (/= *Count* -1)
  27.                 (dcl_DelayedInvoke 1000 "C:CloseSplash")
  28.                 (dcl_Form_close splash_Form1)
  29.         )
  30.         (princ)
  31. )

  32. ;|<<OpenDCL Event Handlers>>|;

  33. (princ)

  34. ;|<<OpenDCL Samples Epilog>>|;

  35. ;;;######################################################################
  36. ;;;######################################################################
  37. ;;; The following section of code is designed to locate OpenDCL Studio
  38. ;;; sample files in the samples folder by prefixing the filename with
  39. ;;; the path prefix that was saved in the registry by the installer.
  40. ;;; The global *ODCL:Prefix and function *ODCL:Samples:FindFile
  41. ;;; are used throughout the samples.
  42. ;;;
  43. (or *ODCL:Samples:FindFile
  44.         (defun *ODCL:Samples:FindFile (file)
  45.                 (setq *ODCL:Prefix
  46.                         (cond
  47.                                 (        *ODCL:Prefix
  48.                                 ) ;_ already defined
  49.                                 (        (vl-registry-read
  50.                                                  "HKEY_CURRENT_USER\\SOFTWARE\\OpenDCL"
  51.                                                  "SamplesFolder"
  52.                                         )
  53.                                 ) ;_ 32-bit location
  54.                                 (        (vl-registry-read
  55.                                                  "HKEY_LOCAL_MACHINE\\SOFTWARE\\OpenDCL"
  56.                                                  "SamplesFolder"
  57.                                         )
  58.                                 ) ;_ 32-bit location
  59.                                 (        (vl-registry-read
  60.                                                  "HKEY_CURRENT_USER\\SOFTWARE\\Wow6432Node\\OpenDCL"
  61.                                                  "SamplesFolder"
  62.                                         )
  63.                                 ) ;_ 64-bit location
  64.                                 (        (vl-registry-read
  65.                                                  "HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\OpenDCL"
  66.                                                  "SamplesFolder"
  67.                                         )
  68.                                 ) ;_ 64-bit location
  69.                         )
  70.                 )
  71.                 (cond
  72.                         ((findfile file)) ; check the support path first
  73.                         (*ODCL:Prefix (findfile (strcat *ODCL:Prefix file)))
  74.                         (file)
  75.                 )
  76.         )
  77. )

  78. ;; If master demo is active, run the main function immediately; otherwise
  79. ;; display a banner. The extra gymnastics allow the sample name to be
  80. ;; specified in only one place, thus making it easier to reuse this code.
  81. (        (lambda (demoname)
  82.                 (if *ODCL:MasterDemo
  83.                         (progn
  84.                                 (princ (strcat "'" demoname "\n"))
  85.                                 (apply (read (strcat "C:" demoname)) nil)
  86.                         )
  87.                         (progn
  88.                                 (princ (strcat "\n" demoname " OpenDCL sample loaded"))
  89.                                 (princ (strcat " (Enter " (strcase demoname) " command to run)\n"))
  90.                         )
  91.                 )
  92.         )
  93.         "Splash"
  94. )
  95. (princ)

  96. ;;;######################################################################
  97. ;;;######################################################################

  98. ;|玍isual LISP?Format Options?
  99. (80 4 50 2 nil "end of " 80 50 0 0 2 nil nil nil T)
  100. ;*** DO NOT add text below the comment! ***|;
找到这个例子了,哈哈。可以了~非常感谢
发表于 2013-8-20 07:43:26 | 显示全部楼层
6楼的  是用EDITPLUS的吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-18 08:46 , Processed in 0.173678 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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