(精品)第六讲 对话框驱动及应用实例

上传人:无*** 文档编号:245061019 上传时间:2024-10-07 格式:PPT 页数:34 大小:374KB
返回 下载 相关 举报
(精品)第六讲 对话框驱动及应用实例_第1页
第1页 / 共34页
(精品)第六讲 对话框驱动及应用实例_第2页
第2页 / 共34页
(精品)第六讲 对话框驱动及应用实例_第3页
第3页 / 共34页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,能够编写对话框文件,仅仅是迈出了对话框设计的第一步,事实上,编写对话框文件比较容易,而要控制对话框,使之实现应有的功能,就要下更大的功夫。要显示编写的对话框并有效控制它,需要结合,AutoLISP,编程。,AutoLISP,提供了处理对话框的各种管理函数,利用它们可以实现,DCL,文件的各种控制。,第,6,讲 对话框驱动及应用实例,1),action_tile,函数,格式:,(,action_tile,控件操作名,动作描述符),功能:将控件与操作表达式联系起来。当用户选择了该控件时,就执行操作表达式所指定的内容。,例,:,(,action_tile“a3”“(,setq,l 594 h 420 c 5)”),(action_tile“accept”“(done_dialog)”),(action_tile“cancel”“(,setq,a 1),(done_dialog)”),6.1,常用对话框处理函数,2),add_list,函数,格式:(,add_list,字串,),功能:将指定的字串加入到当前已激活的列表中。,例,:,(,add_list“1 1.5 2 2.25 2.5 3 3.5 4 5”),3),client_data_tile,函数,格式:,(,client_data_tile,控件操作名,数据属性名),功能:把应用程序专用数据与由参数控制操作名指定的控件相联系。,4),dimx_tile,函数和,dimy_tile,函数,格式:(,dimx_tile,控件操作名,),或(,dimy_tile,控件操作名,),功能:用于获得控件的宽度和高度。控件的坐标原点在控件的左上角。,5),done_dialog,函数,格式:(,done_dialog ,结束码,),功能:结束当前对话框。,结束码,是由(,start_dialog),函数返回的值,可以省去,若有,必须为正整数。,6),end_image,函数,格式:(,end_image,),功能:结束创建当前活动图像,一般应与(,start_image,),函数成对调用。,7),end_list,函数,格式:(,end_list,),功能:结束当前列表框或弹出式列表的选择列表项的处理。一般与(,start_list,),函数成对出现。,8),fill_image,函数,格式:(,fill_image,x1 y1 x2 y2 color),功能:在当前激活的图像中画填充矩形,。,该矩形的两个角点坐标是(,x1,y1),和(,x2,y2),color,为填充的颜色号。,9),get_attr,函数,格式:(,get_attr,控件操作名 属性名),功能:获取,DCL,文件中指定控件和属性的属性值。,10),get_tile,函数,格式:(,get_tile,控件操作名),功能:得到正在运行的控件的关键字的值。返回该控件的,value,属性值的字符串。,11),load_dialog,函数,格式:(,load_dialog,对话框文件名),功能:加载一个,DCL,文件中,这个,DCL,文件可以包含多个对话框的定义。若加载成功该函数返回一个整数,否则,返回一个负整数。,12),mode_tile,函数,格式:(,mode_tile,控件操作名,mode),功能:用于设置控件的显示状态。参数,mode,的值和含义见下表:,mode,含义,0,启用控件,1,禁用控件,2,设置聚焦的控件,3,高亮度显示编辑框中的内容,4,切换图像控件的高亮度显示,13),new_dialog,函数,格式:(,new_dialog,对话框名,dcl_id,),功能:初始化并显示对话框,若该函数调用成功,将返回,T,,否则返回,NIL。,参数,dcl_id,为(,load_dialog),函数返回的值。,14),set_tile,函数,格式:(,set_tile,控件操作名,value,),功能:设置控件的值,参数,value,是要新设置的值,为字符串类型。,15),slide_image,函数,格式:(,slide_image,x1 y1 x2 y2,幻灯片名,),功能:在当前激活的图像控件中显示一个,AutoCAD,幻灯片。显示位置由坐标点(,x1,y1),和(,x2,y2),指定。,16),start_dialog,函数,格式:(,start_dialog,),功能:开始对话框并接受用户输入。在调用该函数之前,你必须通过(,new_dialog),函数来初始化。同时这个对话框必须在一个动作表达式或一个返回函数调用(,done_dialog),函数之前,一直保持激活状态。,17),start_image,函数,格式:(,start_image,控件操作名,),功能:在图像控件中开始建立图像。应当与函数(,end_image,),成对使用,在这两个函数之间可以调用(,fill_image,),(,slide_image,),和(,vector_image,),等函数建立图像。,18),start_list,函数,格式:(,start_list,控件操作名,index,),功能:开始处理由控件操作名指定的列表框或弹出式列表控件中的选择列表。应与函数,(,end_list),成对使用,在这两个函数之间可以调用,(,add_list),来处理选择列表。参数,index,指出使用,(,add_list),时要改变的表项,可以省去。,19),unload_dialog,函数,格式:(,unload_dialog,dcl_id,),功能:卸载与,dcl_id,有关的,DCL,文件。参数,dcl_id,是调用函数(,load_dialog,),时的返回值。,20),vector_image,函数,格式:(,vector_image,x1 y1 x2 y2,color,),功能:在当前的图像控件中,由两点画一条直线,颜色由,color,确定。,6.2,对话框设计举例,例1、,图幅单选按钮对话框设计,:,1)对话框程序定义,(,dxan.dcl,),dxan:dialog,label=,确定图纸幅面;,:,boxed_radio_rowlabel,=,幅面规格;,:,radio_buttonlabel,=A0;key=a0;,:,radio_buttonlabel,=A1;key=a1;,:,radio_buttonlabel,=A2;key=a2;,:,radio_buttonlabel,=A3;key=a3;,:,radio_buttonlabel,=A4;key=a4;,:,radio_buttonlabel,=A5;key=a5;value=1;,ok_cancel,;,2)对话框驱动程序设计,(,htf.lsp,),例2、,带圆正多边形对话框驱动,1,),对话框设计程序(,zdbx.dcl,),zdbx:dialoglabel,=,带圆正多边形,;,:row,:,boxed_column,:,edit_boxlabel,=,边数,;key=,number;value,=6;,:,edit_boxlabel,=,半径,;key=,rad;value,=20;,:,boxed_column,:,radio_buttonlabel,=,内接圆,;key=,nq,;,:,radio_buttonlabel,=,外切圆,;key=,wq;value,=1;,ok_cancel,;,2),带圆正多边形对话框驱动程序,(,zdbx.lsp,),(,defun,dbx,(),(,setq,id(,load_dialog,d:/cad_1/zdbx),(if(what 0)(,draw_zdbx,n r flag),);end,带圆正多边形绘图及数据读取函数,(,defun,draw_zdbx,(n r flag),(,setq,bp,(,getpoint,nBase,point:),(command circle,bp,r),(command polygon n,bp,flag r),),;-,(,defun,qsj,(),(,setq,n(,atoi,(,get_tile,number),(,setq,r(,atof,(,get_tile,rad,),(if(=,fg,1)(,setq,flag i),(,setq,flag c),(,setq,what 1),);end,带圆正多边形对话框运行结果:,例,3,、,等腰梯形对话框驱动,1),对话框设计程序(,dytx.dcl,),dytx:dialoglabel,=,等腰梯形,;,:row,:,boxed_column,:,edit_boxlabel,=,上底,;key=sd1;value=30;,:,edit_boxlabel,=,下底,;key=xd1;value=60;,:,edit_boxlabel,=,高度,;key=gd1;value=40;,:,image_blockkey,=tx1;width=18;,:row,:,retirement_buttonlabel,=,显示梯形面积,:;key=,xsmj;width,=10;,:,edit_boxkey,=mj1;width=10;,:row,:,retirement_buttonlabel,=,显示梯形周长,:;key=,xszc;width,=10;,:,edit_boxkey,=zc1;width=10;,ok_cancel,;,2,),等腰梯形对话框驱动程序,(,dytx.lsp,),(,defun,c:tx,(/id),(,setq,id(,load_dialog,d:shilidytx,),(if(id 0)(exit),(if(not(,new_dialog,dytx,id)(exit),(image1 tx1,d:shilidytx,),(,action_tile,xsmj,(calculate1),(,action_tile,xszc,(calculate2),(,action_tile,accept(,done_dialog,),(,action_tile,cancel(,setq,flag 0),(,done_dialog,),(,start_dialog,),(,unload_dialog,id),(if(=flag 1)(,dytx,sd,xd,gd,),(,princ);end,等腰梯形数据读取计算及回填函数,(,defun,calculate1(),(,setq,sd,(,atof,(,get_tile,sd1),(,setq,xd,(,atof,(,get_tile,xd1),(,setq,gd,(,atof,(,get_tile,gd1),(,setq,mj,(+(*,sd,gd,)(*(-,xd,sd,)0.5,gd,),(,setq,f1(,rtos,mj,2 4),(,set_tile,mj1 f1),(,setq,flag 1);end,;-,(,defun,calculate2(),(,setq,sd,(,atof,(,get_tile,sd1),(,setq,xd,(,atof,(,get_tile,xd1),(,setq,gd,(,atof,(,get_tile,gd1),(,setq,zc,(+(*2(,sqrt,(+(*(,expt,(-,xd,sd,)0.5)2.0)(,expt,gd,2.0),sd,xd,),(,setq,f2(,rtos,zc,2 4),(,set_tile,zc1 f2),(,setq,flag 1);end,等腰梯形绘制及幻灯片显示函数,(,defun,dytx,(,sd,xd,gd,),(,setq,bp,(,getpoint,nEnter,base point:),(command,ucs,o,bp,),(,setq,p1(
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!