找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2019|回复: 6

lisp中可不可以编出那种选择多个文件的对话框?

[复制链接]
发表于 2005-1-25 17:34:19 | 显示全部楼层 |阅读模式

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

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

×
lisp中可不可以编出那种选择多个文件的对话框?
应该怎样做
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-1-25 17:57:32 | 显示全部楼层
列表框里面有个多选的属性,设定它就可以了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-26 09:44:12 | 显示全部楼层
我说的是打开文件的那种,不是列表框
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-1-26 20:49:04 | 显示全部楼层
恐怕不可,以下是cad的帮助
  1. 用标准的 AutoCAD 文件对话框提示用户输入一个文件名,并返回该文件名
  2. (getfiled title default ext flags)

  3. getfiled 函数显示一个对话框,其中包含指定类型(由扩展名指定)的有效文件名列表。用户可以浏览不同驱动器和目录中的文件,选择现有文件或指定新文件名。

  4. 参数

  5. title

  6. 字符串,指定对话框的标签。

  7. default

  8. 要使用的缺省文件名;可为空字符串 ("")。

  9. ext

  10. 缺省的文件扩展名。如果 ext 为空字符串 (""),则缺省值为 *(所有文件类型)。
  11. 如果该参数中包含 dwg 文件类型,则 getfiled 函数在对话框中显示预览图像框。

  12. flags

  13. 整数(按位编码),控制对话框的行为。要一次设置多个条件,可以将几个位值加在一起生成一个 0 和 15 之间的标志值(包括 0 和 15)。getfiled 可识别下列 flags 参数:
  14. 1 (位 0)  提示输入新文件的名称。如果输入文件名是为了打开一个已存在的文件,请不要设置该位。因为在后面这种情况下,如果用户输入的是一个不存在的文件名,对话框将会在对话框的底部显示一条错误信息。
  15. 如果设置了该位而用户选择了一个已存在的文件,AutoCAD 会显示警告框,让用户选择继续进行或取消该操作。

  16. 4 (位 2)  允许用户输入任意文件扩展名,或者干脆不输入文件扩展名。
  17. 如果不设置该位,则 getfiled 仅接受 ext 参数中指定的扩展名,并在用户没有输入扩展名时自动给文件名加上该扩展名。
  18. 8 (位 3)  如果设置了该位而位 0 没有设置,getfiled 函数将在库搜索路径内搜索输入的文件名。如果在库搜索路径下发现了该文件,它将截去路径部分而仅返回文件名(但如果在另一个路径下也发现了同名的文件,它就不会截去路径部分)。

  19. 如果未设置该位, getfiled 返回包括据经在内的文件全名。
  20. 如果要用对话框打开现有文件,并想将其文件名存入图形文件(或其他数据库),就应该设置该位。
  21. 16 (位 4)  如果设置该位,或 default 参数以路径分割符结束,则该参数仅被解释为路径名。getfiled 寒暑假定不存在缺省文件名,并在“查找范围”框中显示路径,而在“文件名”框中不显示任何内容。
  22. 32 (位 5)  如果设置该位,且设置了位 0(已指定了新文件的名称),则如果用户要覆盖现有文件时,不会获得警告信息。即,不再出现提醒框提醒用户已存在同名文件,而是直接覆盖原来的文件。

  23. 64 (位 6)  即使如果用户指定了 URL,也不传输远程文件。
  24. 128(位 7)  不允许 URL。

  25. 返回值

  26. 如果对话框中包含用户指定的文件名,则 getfiled 返回指定文件名的字符串。否则该函数返回 nil。
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-1-28 02:10:41 | 显示全部楼层
建议你看看doslib,有几种对话框:

dos_checklist        (dos_checklist title message assoc-list)        带开关列表 0表示未选中
Example
  (setq xyz '(("layer1" . 0) ("Layer2" . 0) ("Layer3" . 0)))
  (dos_checklist "--by陈勇--" "Layers to turn off" xyz)
--------------------
dos_combolist        (dos_combolist title message list [default])    下拉编辑框
Example
  (setq xyz '("layer1" "Layer2" "Layer3"))
  (dos_combolist "--by陈勇--" "Layer to turn off" xyz)
--------------------
dos_dwgpreview  (dos_dwgpreview title path [T])                 对话框文件列表并预览
Example
  (dos_dwgpreview "Insert a block" "c:\\ blocks\\")
  (dos_dwgpreview "Insert a block" "c:\\ blocks\\" t)

dos_editbox    (dos_editbox title prompt [default])
多行文字编辑框,可以由外部文本文件导入
Example
(dos_editbox "Editor--by陈勇--" "输入编辑文字" "Hockey\nis\nthe\nbest!")

--------------------
dos_editlist        (dos_editlist title message list)        对话框增减项目并排序
Example
  (setq xyz '("layer1" "Layer2" "Layer3"))
  (dos_editlist "--by陈勇--" "Layers to create" xyz)
--------------------
dos_getcancel           信息框, 带 CANCEL 钮
(dos_getcancel title message)
(dos_getcancel T) T== Close the dialog box.
(dos_getcancel)
Example
   (setq x 0)
   (dos_getcancel "Test" "Testing, please wait") ;initialize
   (while (and (dos_getcancel) (< x 10000)) ;check
     (setq x (1+ x))
   )
   (if (= x 10000)
     (dos_getcancel t) ;close
   )

--------------------
dos_getcolor   (dos_getcolor title [default])  颜色选择对话框,用RGB颜色值.
Example
(dos_getcolor "Select a color" 1)

--------------------
dos_getint        (dos_getint title message [default])         输入整数
Example
  (dos_getint "--by陈勇--" "Enter number of copies")
--------------------
dos_getpassword                (dos_getpassword title message [default])输入密码
Example
  (dos_getpassword "密码机--by陈勇--" "请您输入密码:" "cy956")
--------------------
dos_getprogress  进程框
(dos_getprogress title message maxvalue [T])
(dos_getprogress abs/-rel)
(dos_getprogress T) ;close
(dos_getprogress)
Example
   (setq x 0 y 1000)
   (dos_getprogress "Test" "Testing, please wait" y) ;initialize
   (while (< x y)
     (dos_getprogress -1) ;increment relative by 1
     (setq x (1+ x))
   )
   (dos_getprogress t) ;close
--------------------
dos_getreal        (dos_getreal title message [default])          对话框输入实数
Example
  (dos_getreal "--by陈勇--" "Enter a distance")
--------------------
dos_getstring        (dos_getstring title message [default])        对话框输入字串
Example
   (dos_getstring "--by陈勇--" "输入要查找的函名")

--------------------
dos_htmlbox    (dos_htmlbox title address [width height])
   显示HTML网页,可定义框大小
Example
(dos_htmlbox "Autodesk" "www.autodesk.com")
(dos_htmlbox "Autodesk" "C:\\dis041128.htm" 2000 1600)

--------------------
dos_listbox        (dos_listbox title message list [default])          对话框输入单选表
Example
(setq xyz '("layer1" "Layer2" "Layer3"))
(dos_combolist "--by陈勇--" "Select a layer" xyz "Layer3")
--------------------
dos_multilist          (dos_multilist title message list [indices])        对话框输入多选表
(setq xyz '("layer1" "Layer2" "Layer3"))
(dos_multilist "--by陈勇--" "Select a layer" xyz)
(dos_multilist "--by陈勇--" "Select a layer" xyz '(0 2))
--------------------
dos_msgbox        (dos_msgbox text title button icon [duration])  信息框
button The push button format. The allowable values are as follows: Bit value Description
        0 Abort, Retry and Ignore
        1 OK
        2 OK and Cancel
        3 Retry and Cancel
        4 Yes and No
        5 Yes, No and Cancel
icon The icon. The allowable values are as follows:        Bit value Description
        0 Asterisk        I
        1 Exclamation   !
        2 Hand                X
        3 Information        I
        4 Question         ?
        5 Stop                X
返回值:
        0 Abort
        1 Cancel
        2 Ignore
        3 No
        4 OK
        5 Retry
        6 yes
duration=持续时间,button= 1 2 3 5 时用
Example
   (dos_msgbox "--by陈勇--" "Save" 4 3)

--------------------
dos_msgboxex (dos_msgboxex "123"  "--by陈勇--"  (list "A" "B" "C" "D") icon)
最多五个按钮,显示一个提示下的选择
  icon
    0 Asterisk      (i)
    1 Exclamation   (!)
    2 Hand          (X)
    3 Information   (i)
    4 Question      (?)
    5 Stop          (X)

(setq buttons (list "Sometimes" "Never" "What?"))
(dos_msgboxex text "Question of the Day" buttons 4)

--------------------
///dos_progbar        状态行处出现进程框
(dos_progbar label maxvalue)
(dos_progbar abs/-rel)
(dos_progbar)
Example
   (dos_progbar "Wait..." 10)
   (dos_progbar –1); move relative to previous location
   (dos_progbar)

   (setq x 0 y 1000)
   (dos_progbar "Test" y) ;initialize
   (while (< x y)
     (dos_progbar -1) ;increment relative by 1
     (setq x (1+ x))
   )
   (dos_progbar) ;close
--------------------
dos_proplist        (dos_proplist title message list)        多组编辑框
Example
  (setq xyz '(("Title" . "Floorplan") ("Project" . "Project A")))
  (dos_proplist "--by陈勇--" "Modify Properties" xyz)
--------------------
dos_splash        (dos_splash filename duration)  屏显256色bmp图形
Example
   (dos_splash "mylogo.bmp" 5)
--------------------
dos_waitcursor        (dos_waitcursor [T])  改变鼠标指针
Options
   T Toggles on the  沙漏指针.
Examples
  (dos_waitcursor T)
  (dos_waitcursor)
----------------------------------------
*dos_getfiled, (dos_getfiled title path filter) 对话框取文件
(dos_getfiled "选择文件" "c:\\program files\\autocad 2002\\" "Drawing files (*.dwg)|*.dwg|All files (*.*)|*.*||")
--------------------
dos_getfilem        (dos_getfilem title path filter) 多选文件对话框!!!
Example
(dos_getfilem "Select Drawings" "C:\\ DRAWINGS\\" "Drawing Files (*.DWG)|*.DWG")
   ("C:\\ DRAWINGS\\" "TITLE1.DWG" "TITLE2.DWG"...)
(dos_getfilem "Select Files" "C:\\ FILES\\" "Text Files  (*.TXT)|*.TXT|All Files (*.*)|*.*")
   ("C:\\ FILES\\" "TITLE1.TXT" "TITLE2.TXT"...)
========================================
dos_getdir        dos_getdir   (dos_getdir title [path])浏览器选择目录
Example
(dos_getdir "Select a Directory" "c:\\")        "C:\\ DRAWINGS\\ PROJECTS\\"
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-1-28 11:04:28 | 显示全部楼层
同意楼上的说法,用DOSLIB2K.ARX中函数,非常好用
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-1-28 21:43:56 | 显示全部楼层
返回值是什么?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 21:12 , Processed in 0.180120 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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