乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 70|回复: 4

请问如何启动对话框中的按钮?

[复制链接]

21

主题

51

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
135
发表于 2004-6-8 17:47:00 | 显示全部楼层 |阅读模式
在程序设计中,设计了一个“浏览”按钮项以选则一个新文件,但在实际应用中点取该命令时总没有反应。
回复

使用道具 举报

57

主题

466

帖子

8

银币

中流砥柱

Rank: 25

铜币
694
发表于 2004-6-8 18:08:00 | 显示全部楼层
晕,那就是你程序的问题了。
---------------------------------------
帮助文件;;;为某一对话框控件指定一个动作表达式,用户在对话框中选中这个控件时,就会执行该动作表达式
(action_tile key action-expression)
由 action_tile 函数指定的动作将取代对话框的缺省动作,缺省动作是由 new_dialog 函数指定或该控件的 action 属性(在指定了这些属性的情况下)。该动作表达式可以通过变量 $value 引用控件的当前值(即它的 value 属性),通过变量 $key 引用控件的关键字,通过变量 $data 引用控件的特定应用数据(假如需要这样的数据,可以由函数 client_data_tile 设置),通过变量 $reason 引用控件的回调原因。如果该控件是图像按钮的话,还可以通过变量 $x 和 $y 引用控件的图像坐标。
参数
key
要触发动作的控件的操作名字符串(由控件的 key 属性指定),它是区分大小写的。
action-expression
指定选定控件时所要求值的动作表达式的字符串。
注意 在 action_tile 函数中不能调用 AutoLISP 的 Command 函数。
返回值
T
样例
如果 edit1 是一个文本框,则当用户退出文本框时将对下述 action_tile 函数调用中的动作表达式进行求值:
(action_tile "edit1" "(setq ns $value)")
请参见 Visual LISP 开发人员手册中的缺省值与 DCL 动作。
回复

使用道具 举报

21

主题

51

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
135
发表于 2004-6-9 13:39:00 | 显示全部楼层



                               
登录/注册后可看大图

       
谢谢你!其实,我的程序已经编号,但为把输入输出做的好用一些,增加了文件存取对话框,但怎么试都不行。请帮忙看看程序吧!谢谢
                                 (setq dcl_id (load_dialog "qx6.dcl"))
                                 (if (not (new_dialog "qx6" dcl_id)) (exit))
                                 (set_tile "fi" "")
                                 (set_tile "zh" "0")
                                 (set_tile "zhju" "200")
                                 (set_tile "fi2" "SEGMENT")
                                 (mode_tile "fi" 2)
                                 (action_tile "accept" "(ok)")
                                 (start_dialog )
                                 (done_dialog)
                                                                 (action_tile "filein" (getfiled "select a lisp file" "/cass40/bin/" "lsp" 5))
                                                                 (action_tile "fileout" (princ "输出"))
                                 (unload_dialog dcl_id)
======以下是dcl ==================
qx6:dialog{
                 label = "圆曲线元素计算";
:row {
                 :edit_box{
                                                 label = "转点文件名";
                                                 mneonic = "N";
                                                 key = "fi";
                                                 edit_width =10;
                 }
                 :button{
                                                 label = "浏览";
                                                 key = "filein";
                                                 width = 1;
                                                 height = 1;
                                                 mnemonic= "B";
                 }
}
                 :edit_box{
                                                 label = "起始点桩号";
                                                 mneonic = "N";
                                                 key = "zh";
                                                 edit_width =20;
                 }
                 :edit_box{
                                                 label = "桩                                         距";
                                                 mneonic = "N";
                                                 key = "zhju";
                                                 edit_width =20;
                 }
:row {
                 :edit_box{
                                                 label = "成果文件名";
                                                 key = "fi2";
                                                 edit_width =10;
                 }
                 :button{
                                                 label = "浏览";
                                                 key = "fileout";
                                                 width = 1;
                                                 height = 1;
                                                 mnemonic= "B";
                 }
}
                 spacer_1;
                 ok_cancel_err;
}
程序调入后,当点"filein" or "fileout" 钮时,没反应,但当点取“取消”或“确定”钮才出现想要的文件选取对话框.
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-6-9 14:30:00 | 显示全部楼层
好好看看我改的,,,,你的程序顺序上很乱,错误很多,一定要看仔细了,一句话,一个符号都不要放过(由于不知道你的ok函数是什么内容,我把(action_tile "accept" ...)屏蔽了——另,注意,getfiled只是返回选择的文件名(包括路径),并不会做其它任何事情,要保存,你须你自己来做,所以你的这个动作应该说是没有任何作用的。。。建议你一点一点地搞懂这些内容,不要老想着一下子都搞懂了
  1.          (setq dcl_id (load_dialog "qx6.dcl"))
  2.          (if (not (new_dialog "qx6" dcl_id)) (exit))
  3.          (set_tile "fi" "")
  4.          (set_tile "zh" "0")
  5.          (set_tile "zhju" "200")
  6.          (set_tile "fi2" "SEGMENT")
  7.          (mode_tile "fi" 2)
  8. (action_tile "filein" "(getfiled "select a lisp file" "/cass40/bin/" "lsp" 5)")
  9. (action_tile "fileout" "(princ "输出")")
  10.          ;(action_tile "accept" "(ok)")
  11.          (start_dialog )
  12.          (unload_dialog dcl_id)
回复

使用道具 举报

21

主题

51

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
135
发表于 2004-6-10 14:26:00 | 显示全部楼层
多谢指教!主要是我引用的函数太长了,又没加引号,把它定义成一个子程序就ok了。谢谢!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-8-18 11:30 , Processed in 2.260742 second(s), 63 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表