众多动态对话框源码 LISP 与 DCL 实例源码
土木转的一篇文章,觉得不错,拿出来和大家分享!!我在网易上原创并广为下载的“钢构CAD”目前已下载约7000人次,且下载后使用者反映还好。
我一直有个想法,将我程序中的个别对话框控制的典型程序,选出一个在此,将源代码分别上传发表,为这个人气不错的版块,起点抛砖引玉的作用。
国内CAD开发高手云云的晓东CAD和明经通道,的确有不少源代码,但涉及到DCL对话框的确很少,公开发表的,还是少有的很老气的英文版的简单的一些局部介绍,太让人感到云雾高深。
有个老虎CAD网站,要注册成为其用户还要有里面高手的邀请书才行,我想注册也没资格也没被接受。但我却看见该网上的某个高手,把我在网易上发的一个贴子内容文章“快速成为CAD高手的方法”,连图一起在其老虎CAD网上转载发表,看来那些远离大众的老虎高手们,也还是会拒大众于门外却在大众中间转游啊。
钢构CAD在线 最新2.0版程序下载
http://www.co188.com/forum/content/369_959993_1.htm
成为高手不难,可参看本站如下链接《CAD高手速成法》
http://www.co188.com/forum/content/1714_724644_1.htm
《钢构CAD》原始版及程序升级包的本站下载链接
http://www.co188.com/forum/content/1783_595556_1.htm
插入图框程序实例 LISP 及 DCL 全部源代码本站位置如下
http://www.co188.com/forum/content/93_896090_1.htm
为与热爱CAD的网易朋友的共享开发乐趣,我将程序中的几个我认为典型的动态对话框界面,选摘于此,看看那个较让朋友们看中,我就在此发布并讲解其中开发思路和感受。
让大家参考借鉴。
这是程序中插入图框的界面,是程序中改写最多的一个。
这个程序最先只是个纯LISP程序,后来参考各商业程序中的此类增加了对话框,但主要是非专业设计应用,此设置了一个从图中量取出图比例的功能,为满足一幅图中各种不同比例出图,特设置了多个标注样式,在后来的实用中,有的退休高工因眼光老化,又增加了标注字体的多项选择项目,又后来因不同专业爱好对图标栏的要求不同,又增加了自定义图标栏的项目。
本程序对那些工非设计院的工程师很有实用性。
此对话框全部程序源代码
//何人强/20050608/于曲靖双友钢铁厂
//051009于曲靖双友钢铁厂,在对话框中增加文字大小选项,并与标注各系统变量相联系
//;;;060123-25于师宗民科二号高炉工程工地,在对话框中增加幻灯显示(共调用29幅幻灯片,分两处显示),并对原布局略有调整
crtkK : dialog{
label="钢 构 C A D---插 入 图 框";
:row{//其下为水平排列
:boxed_radio_column{ // : radio_row {//无加框按钮行
label=" ";key="TKZT";
:radio_button{label=" A 0";key="A0";}
:radio_button{label=" A 1";key="A1";}
:radio_button{label=" A 2";key="A2";}
:radio_button{label=" A 3";key="A3";}
:radio_button{label=" A 4";key="A4";}
:radio_button{label="机电箭头";key="JD";}
:radio_button{label="了解程序";key="LJ";}
:boxed_column{
label="出 图 比 例 ";key="SRBL";
:text { key="blvz";}//可变的文字对象
:edit_box {//编辑框是允许用户在其中输入或编辑单行文字的控件。
label= "1 :";//编辑框左边的名称
key="CTBL" ;//指定一个 ASCII 名称,即为行数后的文本框指定一个代码
edit_width=6 ;//以平均字符宽度为单位指定 edit_box 控件中编辑框或输入框的文本区宽度。
}//截面长编辑框完,以下编辑框类同
:popup_list{ //比例下拉选单
key="popang";
edit_width=9;
}
}
}
:boxed_radio_column{
label=" ";key="BLZT";
:row{//其下为水平排列
:boxed_column{//在比例状态下设置为列
label=" 比 例 状 态 ";
:radio_button{label="已经 确定";key="YJQD";}
spacer_1 ;//加空行--()
:radio_button{label="图中 量取";key="CTZLQ";}
}
:boxed_column{
label="图 框 横 竖";key="TKHS";
:radio_button{label="横向";key="HXTK";}
:radio_button{label="竖向";key="SXTK";}
}
}
:boxed_radio_row{
label=" 图 标 栏 的 选 用 ";key="SFCRTBL";
//:toggle { label= " 插 入"; key="CZTBL" ;}//注:因打勾选框不能单击启动子程序,因配合幻灯故改用单选钮
:radio_button{label="默 认";key="CZTBL-1";}
:radio_button{label="自定义图标栏";key="CZTBL-2";}
}
:image {//幻灯显示框
key = "kimage";
color = -2;//背景色:1白2黑3蓝4白5灰6白7红8灰9白10蓝
width = 30;//框宽,,,背景色在LISP中也设置,但均以黑色为妥
aspect_ratio = 1;//高宽比,但也会被其它控件拉长或拉高
}
}
}
:row{//其下为水平排列
:boxed_radio_row {//加框按钮行// : radio_row {//无加框按钮行
label=" 标 注 文 字 大 小m m";key="VZDX";
:radio_button{label="2";key="XVZ";}
:radio_button{label="2.5";key="ZVZ";}
:radio_button{label="3.5";key="DVZ";}
:radio_button{label="5";key="JDVZ";}
:radio_button{label="7";key="TDVZ";}
}
:image {//幻灯显示框
key = "kimage-JT";//显示标注箭头大小幻灯
color = -2;//背景色:1白2黑3蓝4白5灰6白7红8灰9白10蓝
width = 20;//框宽,,,背景色在LISP中也设置,但均以黑色为妥
aspect_ratio = 0.3;//高宽比,但也会被其它控件拉长或拉高
}
}
:boxed_column{ //组框行
label="";
:concatenation{ //水平群集连结
:text_part {label="";} //纯文字显示
:text {width=50;//框宽
key="t_text";} //可变的文字对象3
}
spacer_1 ;//加空行--()
:text {width=50;//框宽
key="t_text-11";} //可变的文字对象3
spacer_1 ;//加空行--()
}
spacer_1 ;//加空行--()
:row{//其下为水平排列
ok_cancel;//确定和取消按钮
: button {//自定义一个按钮
key = "E_mail";//退出与确定的区别:确定为key = "accept";
label = "关 于";
fixed_width = true;//使按钮外框的宽度收缩到恰好可以容纳其内部的文字
alignment = centered;//使按钮居中放置
}
}
}
http://bbsfile.co188.com/forum/133/1192063681762.gif
这个是程序中五金手册系列中最先开发的一个,其中数据部分也是从别的程序中获取占为己有的。
在工作中常备一本五金手册是很多工程师的习惯,虽现有了不少此类程序,但有时画个型钢断面时却很麻烦,在能从别处获取相关数据的时侯,就有了将五金手册与画断面二者合一的想法,编程时增加了放大多个倍数的选项。
此界面全部源代码// *****************************************************************************************************
DBJG : dialog{
label=" 钢 构 C A D --- 角 钢";
:radio_column{//其下为无框竖向平排列
:row{//其下为水平排列
:image {//幻灯显示框
key = "kimage";
color = -2;//背景色:1白2A黑3蓝4白5灰6白7红8灰9白10蓝
width = 30;//景宽
aspect_ratio = 1;//高宽比,但也会被其它控件拉大
}
// :boxed_radio_column{//其下为有框竖向平排列
:radio_column{//其下为无框竖向平排列
:radio_column{//其下为无框竖向平排列
:boxed_radio_row{//boxed_radio_row加框按钮行单选 radio_row {//无加框按钮行单选
// :radio_row{//boxed_radio_row加框按钮行单选 radio_row {//无加框按钮行单选
label="";key="SFCRTBL";
:radio_button{label="等 边";key="DBJG";}
:radio_button{label="不 等 边";key="B-DBJG";}
}
:list_box{ //列表框
label=" 选 择 角 钢 型 号";
key="klist"; //key值
width=10; //选单宽度
height=10; //选单高度
}
:popup_list{ //下拉选单
label=" 图 形 放 大";key="DBJG-TXFD";edit_width=10;}
}
}
}
:boxed_column{ //组框行
label="";
:concatenation{ //水平群集连结
:text {width=55;key="DBJG-text-1";} //可变的文字对象2
}
spacer_1 ;//加空行--()
:text {width=55;key="DBJG-text-2";}//可变的文字对象3
spacer_1 ;//加空行--()
:text {width=55;key="DBJG-text-3";}//可变的文字对象3
}
// ok_cancel;//确定和取消按钮
:row{//其下为水平排列
:button{//width=25;
label="插入图形";key="accept";alignment = centered;fixed_width = true;is_default = true;}//按钮
: button {//自定义一个退出按钮
// width=15;
key = "cancel";//退出与确定的区别:确定为key = "accept";
label = " 退出 ";//is_default = true; //缺省按钮,一个话框中必须也只能有一个缺省按钮
fixed_width = true;//使按钮外框的宽度收缩到恰好可以容纳其内部的文字
alignment = centered;//使按钮居中放置
}
: button {//自定义一个按钮
key = "E_mail";//退出与确定的区别:确定为key = "accept";
label = "关 于";
fixed_width = true;//使按钮外框的宽度收缩到恰好可以容纳其内部的文字
alignment = centered;//使按钮居中放置
}
}
}
}//钢 构 C A D ---角 钢
http://bbsfile.co188.com/forum/39/1192063943963.gif
这个图层程序,是受那个贱人工具箱的启发,但最开始时因不会获取图层中的各类相关信息,又不想停留在贱人的此类不足上,故此程序是后来升级才开发的,与贱人的相比,我认为保留了图层中的线型、颜色等相美常用信息。
按一个键,就得到一个你想要的图层,包括线型、线宽、颜色等,为爱酷的朋友提供了方便。
在此,我要说贱人工具箱,人见人爱。
图层设置是画图中的一项麻烦事,特别是对我这样不精于设置的人来说,为一劳永逸,对设置了均为中文名称的相关常用图层,并用程序一次搞定,后来考虑到不同朋友的爱好,增加了自定义图层也一次搞定的想法。
一键图层对话框源码
TC : dialog{ //070710 于成都大邑
label=" 钢 构 C A D...一 键 图 层" ;
key="dial";
// spacer_1 ;//加空行--()
:row { //无框水平排列 :boxed_row//有框水平排列
:boxed_radio_column{ label="已有设置";
:list_box{ //列表框
//label="已有快速图层";
key="TC"; //key值
width=27; //选单宽度
height=9; //选单高度
}
: button {width=5;key = "Q1";label = "清 除 设 置";fixed_width = true;alignment = centered; }
: button {//自定义一个按钮
// width=5;
key = "SM-1";//退出与确定的区别:确定为key = "accept";
label = "程 序 说 明";//is_default = true; //缺省按钮,一个话框中必须也只能有一个缺省按钮
fixed_width = true;//使按钮外框的宽度收缩到恰好可以容纳其内部的文字
alignment = centered;//使按钮居中放置
}
}
:radio_column{ //其下为无框竖向平排列
label = "选择1~5对应图层";
//:text_part {label="不选择的不会被保存";} //纯文字显示
:row { //无框水平排列
:radio_column{ //其下为无框竖向平排列
:popup_list{ //比例下拉选单
//label= "<1>";//编辑框左边的名称
key="<-1";
edit_width=25;
}
:popup_list{ key="<-2";edit_width=25;}
:popup_list{ key="<-3";edit_width=25;}
:popup_list{ key="<-4";edit_width=25;}
:popup_list{ key="<-5";edit_width=25;}
}
}
// spacer_1 ;//加空行--()
:row{//其下为水平排列
//:text {label = ""; width= 8 ;key="text";} //可变的文字对象1
: button {width=5;key = "accept";label = "保存设置";fixed_width = true;alignment = centered; } //按钮
: button {//自定义一个退出按钮
width=5;
key = "cancel";//退出与确定的区别:确定为key = "accept";
label = "退 出";// is_default = true; //缺省按钮,一个话框中必须也只能有一个缺省按钮
is_default = true;
fixed_width = true;//使按钮外框的宽度收缩到恰好可以容纳其内部的文字
alignment = centered;//使按钮居中放置
}
}
}
:boxed_radio_column{ //其下为有框竖向平排列
label = " 图层操作 ";
:row{//其下为水平排列
:radio_column{ //其下为无框竖向平排列:boxed_radio_column{ //其下为有框竖向平排列
: button { key = "X1";label = "关闭";fixed_width = true;alignment = centered; }
: button { key = "X2";label = "冻结";fixed_width = true;alignment = centered; }
: button { key = "X3";label = "锁定";fixed_width = true;alignment = centered; }
}
:radio_column{ //其下为无框竖向平排列
: button { key = "S1";label = "显示全部";fixed_width = true;alignment = centered; }
: button { key = "S2";label = "解冻全部";fixed_width = true;alignment = centered; }
: button { key = "S3";label = "解锁全部";fixed_width = true;alignment = centered; }
}
}
: button { key = "S4";label = "显示解冻解锁全部";fixed_width = true;alignment = centered; }
: button { key = "S5";label = "只显被选对象图层";fixed_width = true;alignment = centered; }
//: button {//自定义一个按钮
//// width=5;
// key = "SM-1";//退出与确定的区别:确定为key = "accept";
// label = "程序说明";//is_default = true; //缺省按钮,一个话框中必须也只能有一个缺省按钮
// fixed_width = true;//使按钮外框的宽度收缩到恰好可以容纳其内部的文字
// alignment = centered;//使按钮居中放置
// }
}
}
:text {label = "图 层 操 作 更 轻 松 ,我 的 图 层 ,我 做 主 。"; width= 8 ;key="text";} //可变的文字对象1
}
http://bbsfile.co188.com/forum/25/1192064362097.gif
这是一个几何计算的小程序。很多专业计算,都难以找到现成的程序,自己会写当然更好,反正计算流程都很简单,只要将其变为程序吧了。
球类计算源代码
//何人强/20060219/于师宗民科煤业有限公司二号高炉工地
QTMJS : dialog{
label=" 钢 构 C A D --- 球 类 体 面 积 计 算";
:row{//其下为水平排列
:image {//幻灯显示框
key = "kimage";
color = -2;//背景色:1白2A黑3蓝4白5灰6白7红8灰9白10蓝
width = 45;//景宽
aspect_ratio = 1;//高宽比
}
:boxed_radio_column{//其下为竖向有框水平排列
:boxed_radio_column{//其下为竖向有框水平排列
label=" ";key="";
:row{//其下为水平排列
:boxed_radio_column{//其下为竖向有框水平排列
label=" 选 择 ";
width=10;//编辑框宽度
:radio_button{label="球";key="XJ1";}
:radio_button{label="椭 球";key="XJ2";}
:radio_button{label="椭 圆";key="XJ3";}
}
:boxed_radio_column{//其下为竖向有框水平排列
label=" 输 入 ";
:edit_box {//编辑框是允许用户在其中输入或编辑单行文字的控件。
label= "1,长轴总长 L =" ;//编辑框左边的名称
key="LD-01" ;//指定一个 ASCII 名称,即为行数后的文本框指定一个代码
edit_width=8 ;//以平均字符宽度为单位指定 edit_box 控件中编辑框或输入框的文本区宽度。
}//截面长编辑框完,以下编辑框类同
:edit_box {//编辑框是允许用户在其中输入或编辑单行文字的控件。
label= "2,中轴总长 B =" ;//编辑框左边的名称
key="LD-02" ;//指定一个 ASCII 名称,即为行数后的文本框指定一个代码
edit_width=8 ;//以平均字符宽度为单位指定 edit_box 控件中编辑框或输入框的文本区宽度。
}
:edit_box {//编辑框是允许用户在其中输入或编辑单行文字的控件。
label= "3,短轴总长 H =" ;//编辑框左边的名称
key="LD-03" ;//指定一个 ASCII 名称,即为行数后的文本框指定一个代码
edit_width=8 ;//以平均字符宽度为单位指定 edit_box 控件中编辑框或输入框的文本区宽度。
}
}
}
}
:boxed_column{ //组框行
// label="";
:text {width=45; key="QT-text-1";} //可变的文字对象2
spacer_1 ;//加空行--()
:text {width=45; key="QT-text-2";}//可变的文字对象3
spacer_1 ;//加空行--()
//:text {width=25; label="789"; key="LD-text-3";}//可变的文字对象3
}
// ok_cancel;//确定和取消按钮
:row{//其下为水平排列
:button{label=" 计 算 ";key="QTJS-060121";alignment = centered;fixed_width = true; is_default = true;}//按钮
:text {width=15;label = " ☆ ★ ☆ ";key="QTJS-text";}//可变的文字对象
: button {//自定义一个退出按钮
key = "cancel";//退出与确定的区别:确定为key = "accept";
label = "退出";
// is_default = true;//缺省按钮,一个话框中必须也只能有一个缺省按钮
fixed_width = true;//使按钮外框的宽度收缩到恰好可以容纳其内部的文字
alignment = centered;//使按钮居中放置
}
}
}
}
}
http://bbsfile.co188.com/forum/5/1192064509187.gif http://bbsfile.co188.com/forum/25/1192064509230.gif
这是一个编号类的小程序
这个程序的构思开始是很明显而简单的,在编写过程序中,在完成简单功能之后,又增加了自动识别大小写字母与数字,均能按递增或递减的方式进行连续编号。
ZC_BH : dialog{
label=" 钢 构 C A D --- 连 续 编 号" ;
key="dial";
:row { //无框水平排列 :boxed_row//有框水平排列
:image//幻灯显示框
{
key="HD-01";
width=25;//显示框宽
height=1;
color=0;
fixed_width=true;
}
:radio_column{//其下为无框竖向平排列 :boxed_radio_column{//其下为有框竖向平排列
:row{
:edit_box{label="文字高度:";key="VZG";width=5;}
:edit_box{label="起点编号:";key="QDH";width=5;}
}
:radio_row {//无加框行
:boxed_radio_row{//boxed_radio_row加框按钮行 radio_row {//无加框行
label=" 引 线 ";
:row{
:radio_button{label="有";key="BH-Y";}
:radio_button{label="无";key="BH-W";}
}
}
:boxed_radio_row{//boxed_radio_row加框按钮行 radio_row {//无加框行
label=" 方 式 ";key="JDQJ";
:radio_button{label="递增";key="FS-Z";}
:radio_button{label="递减";key="FS-J";}
}
}
:boxed_radio_row{//boxed_radio_row加框按钮行 radio_row {//无加框行
label="插入点位置";key="YH--";
:radio_button{label="上";key="YH-S";}
:radio_button{label="下";key="YH-X";}
:radio_button{label="左";key="YH-Z";}
:radio_button{label="右";key="YH-Y";}
}
:row{//其下为水平排列
:button{width=5;label="编号";key="accept";alignment = centered;fixed_width = true;is_default = true;}//按钮
: button {//自定义一个退出按钮
width=5;
key = "cancel";//退出与确定的区别:确定为key = "accept";
label = "退出";//is_default = true; //缺省按钮,一个话框中必须也只能有一个缺省按钮
fixed_width = true;//使按钮外框的宽度收缩到恰好可以容纳其内部的文字
alignment = centered;//使按钮居中放置
}
: button {//自定义一个按钮
width=5;
key = "SM-1";//退出与确定的区别:确定为key = "accept";
label = "说 明";//is_default = true; //缺省按钮,一个话框中必须也只能有一个缺省按钮
fixed_width = true;//使按钮外框的宽度收缩到恰好可以容纳其内部的文字
alignment = centered;//使按钮居中放置
}
}
}
}
}
http://bbsfile.co188.com/forum/106/1192064722661.gif
这个数据运算的源代码是从网上捡来的,我只不过是增加了对话框界面,并略改了原代码中只能计算单行文字的功能,从而使只有含有数据的文字,均能进行运算。
JFCX : dialog{label=" 钢 构 C A D --- 数 据 累 加";
:image {//幻灯显示框
key = "kimage";
color = -2;//背景色:1白2A黑3蓝4白5灰6白7红8灰9白10蓝
width =40;//景宽
aspect_ratio =0.8;//高宽比,但也会被其它控件拉大
}
:edit_box {//编辑框是允许用户在其中输入或编辑单行文字的控件。
label= "答 案 保 留 到 小 数 点 后 位 数 =" ;//编辑框左边的名称
key="DA" ;//指定一个 ASCII 名称,即为行数后的文本框指定一个代码
edit_width=3 ;//以平均字符宽度为单位指定 edit_box 控件中编辑框或输入框的文本区宽度。
}//截面长编辑框完,以下编辑框类同
spacer_1 ;//加空行
:toggle { label= "将 答 案 写 入 图 中"; key="TZ" ;}// 打勾
spacer_1 ;//加空行
:row{//无框行
// ok_cancel;//确定和取消按钮
:button{width=10;label="选 取 数 据";key="accept";alignment = centered;fixed_width = true;is_default = true;}//按钮
: button {//自定义一个退出按钮
width=5;
key = "cancel";//退出与确定的区别:确定为key = "accept";
label = "退出";//is_default = true; //缺省按钮,一个话框中必须也只能有一个缺省按钮
fixed_width = true;//使按钮外框的宽度收缩到恰好可以容纳其内部的文字
alignment = centered;//使按钮居中放置
}
: button {//自定义一个按钮
key = "SM";//退出与确定的区别:确定为key = "accept";
label = "说 明";
fixed_width = true;//使按钮外框的宽度收缩到恰好可以容纳其内部的文字
alignment = centered;//使按钮居中放置
}
}
}
http://bbsfile.co188.com/forum/141/1192064889447.gif
这个画型钢系列的程序中的一个角钢杆件程序,因也有了五金手册中的数据支持,就顺手编写了这类画型钢杆件的程序。
此类程序中对框中,运用了一个动作控制两个幻灯图片的分别动态变化显示,为程序操作代来了图文并冒的效果。
GJ_01 : dialog{//7-6.DCL 程 序 编 制 : 云 南 十 四 冶 ---何 人 强
label=" 钢 构 C A D --- 角 钢 杆 件";
:radio_column{//其下为无框竖向平排列
:row{//其下为水平排列
:image {//幻灯显示框
key = "kimage";
color = -2;//背景色:1白2A黑3蓝4白5灰6白7红8灰9白10蓝
width = 20;//景宽
aspect_ratio = 1;//高宽比,但也会被其它控件拉大
}
// :boxed_radio_column{//其下为有框竖向平排列
:radio_column{//其下为无框竖向平排列
:radio_column{//其下为无框竖向平排列
:row{//其下为水平排列
:boxed_radio_row{// boxed_radio_row 加框按钮行单选 radio_row {//无加框按钮行单选
// :radio_row{// boxed_radio_row 加框按钮行单选 radio_row {//无加框按钮行单选
label="角 钢 类 型";
:radio_button{label="等边";key="DBJG";}
:radio_button{label="不等边";key="B-DBJG";}
}
:boxed_radio_row{label="画 图 形 式";
:radio_button{label="剖面";key="M-1";}//单选
:radio_button{label="前视";key="M-2";}
:radio_button{label="府视";key="M-3";}
:radio_button{label="后视";key="M-4";}
}
}
:row{//其下为水平排列
:popup_list{ //下拉选单
label="型 号";
key="klist"; //key值
edit_width=20;
}
:popup_list{ //下拉选单
label="组合形式";
key="ZH"; //key值
edit_width=22;
}
}
:image {//幻灯显示框
key = "kimage-1";
color = -2;//背景色:1白2A黑3蓝4白5灰6白7红8灰9白10蓝
width = 60;//景宽
aspect_ratio = 0.2;//高宽比,但也会被其它控件拉大
}
}
}
}
:row{//其下为水平排列
:edit_box{label="出图比例 1 :";key="CTBL";width=2;}
:edit_box{label="主线宽:";key="CTXK";width=2;}
:edit_box{label="两端截短:";key="LBSD";width=2;}
:edit_box{label="间距 a =";key="JJ";width=2;}
}
:boxed_column{ //有框行
:text { label="此 处 显 示 选 择 过 的 型 号 参 数 , 未 选 择 将 不 能 正 确 画 图 。";width=60;key="text-1";} //可变的文字对象2
}
:row{//其下为水平排列
:column{//无框行boxed_
:text { label="点 击 下 拉 框 后 可 用 滚 轮 选 择";width=35;key="text-2";} //可变的文字对象2
}
:toggle { label= "画轴线"; key="HZX" ;}
:button{width=5;label="画 图";key="accept";alignment = centered;fixed_width = true;is_default = true;}//按钮
: button {//自定义一个退出按钮
width=5;
key = "cancel";//退出与确定的区别:确定为key = "accept";
label = "退 出";//is_default = true; //缺省按钮,一个话框中必须也只能有一个缺省按钮
fixed_width = true;//使按钮外框的宽度收缩到恰好可以容纳其内部的文字
alignment = centered;//使按钮居中放置
}
: button {//自定义一个按钮
// width=5;
key = "SM";//退出与确定的区别:确定为key = "accept";
label = "说 明";//is_default = true; //缺省按钮,一个话框中必须也只能有一个缺省按钮
fixed_width = true;//使按钮外框的宽度收缩到恰好可以容纳其内部的文字
alignment = centered;//使按钮居中放置
}
}
}
}//钢 构 C A D ---杆 件 角 钢
http://bbsfile.co188.com/forum/117/1192065113121.gif
这是一个很简单的小程序,但其源代码,我认为也要比晓东和明经上公开的此类要有用得多,最起码还是中文界面的吧
ZC_BH_1 : dialog{
label=" 钢 构 C A D --- 自 动 序 号" ;
//:radio_column{//其下为无框竖向平排列 :boxed_radio_column{//其下为有框竖向平排列
:row{
:boxed_radio_column{//其下为有框竖向平排列
label=" 编 号 ";
:edit_box{label="起点:";key="QDH";width=3;}
:edit_box{label="终点:";key="ZDH";width=3;}
}
:boxed_radio_column{//其下为有框竖向平排列
label=" 文 字 ";
:edit_box{label="高度:";key="VZG";width=3;}
: button {//自定义一个按钮
width=10;
key = "SM-1";//退出与确定的区别:确定为key = "accept";
label = "说 明";//is_default = true; //缺省按钮,一个话框中必须也只能有一个缺省按钮
fixed_width = true;//使按钮外框的宽度收缩到恰好可以容纳其内部的文字
alignment = centered;//使按钮居中放置
}
}
}
ok_cancel;
}
http://bbsfile.co188.com/forum/30/1191911663430.gif
以上程序,包含了对话框中的:输入数据记忆、按钮点控记忆、按钮点击的相关控制、幻灯片的动态显示控制等等。
此处只是选择了很少一部分有代表性的,如各位对“钢构CAD”程序中别的子程序源代码感兴趣,也可在此发表看法,我会综合各位朋友们的看法,将程序源代码及开发思路,在这个网站要发出来的。
//何人强/20050618/于曲靖双友钢铁厂 061013于师宗改写增加幻灯显示
RYWT : dialog{
label=" 钢 构 C A D --- 板 金 放 样 系 列 程 序 --- 任 意 弯 头";
:row{//其下为水平排列
:image {//幻灯显示框
key = "kimage";
color = -2;//背景色:1白2A黑3蓝4白5灰6白7红8灰9白10蓝
width = 40;//景宽
aspect_ratio = 1;//高宽比,但也会被其它控件拉大
}
:radio_column{//其下为无框竖向排列
:boxed_radio_row {
label="1、管道参数";//key="SRBL";
:edit_box {//编辑框是允许用户在其中输入或编辑单行文字的控件。
label= "外径" ;//编辑框左边的名称
key="GDYJ" ;//指定一个 ASCII 名称,即为行数后的文本框指定一个代码
edit_width=7 ;//以平均字符宽度为单位指定 edit_box 控件中编辑框或输入框的文本区宽度。
}//截面长编辑框完,以下编辑框类同
:edit_box {//编辑框是允许用户在其中输入或编辑单行文字的控件。
label= "弯曲角度" ;//编辑框左边的名称
key="WQJD" ;//指定一个 ASCII 名称,即为行数后的文本框指定一个代码
edit_width=7 ;//以平均字符宽度为单位指定 edit_box 控件中编辑框或输入框的文本区宽度。
}
:edit_box {//编辑框是允许用户在其中输入或编辑单行文字的控件。
label= "弯头节数" ;//编辑框左边的名称
key="WTJS-1" ;//指定一个 ASCII 名称,即为行数后的文本框指定一个代码
edit_width=7 ;//以平均字符宽度为单位指定 edit_box 控件中编辑框或输入框的文本区宽度。
}// :text_part {label=" N 等分环形节数为 N + 1";} //纯文字显示
}
:boxed_radio_row {
label="2、弯曲半径输入方式";key="SRFS";
:radio_button{label="倍数输入";key="BSSR";}
:radio_button{label="手工输入";key="SGSR";}
:edit_box {//编辑框是允许用户在其中输入或编辑单行文字的控件。
label= " 弯曲半径" ;//编辑框左边的名称
key="SGSR-1" ;//指定一个 ASCII 名称,即为行数后的文本框指定一个代码
edit_width=7 ;//以平均字符宽度为单位指定 edit_box 控件中编辑框或输入框的文本区宽度。
}
}
:boxed_radio_row {
label="3、弯曲半径倍数";key="BSSR-";
:radio_button{label="1";key="BSSR-1";}
:radio_button{label="1.5";key="BSSR-15";}//注:此行不能写为key="BSSR-1.5";
:radio_button{label="2";key="BSSR-2";}
:radio_button{label="2.5";key="BSSR-25";}//注:此行不能写为key="BSSR-2.5";
:radio_button{label="3";key="BSSR-3";}
}
:boxed_column{ //第二组框行
label=" 按倍数确定的弯曲半径 ";key="SGSR-BS" ;
:concatenation{ //水平群集连结
:text_part {label="";} //纯文字显示
:text {width=55;key="t_text";} //可变的文字对象1
:text_part{label="";} //纯文字显示
}
}
:boxed_column{ //第三组框行// label="";
:concatenation{ //水平群集连结// :text_part {label="";} //纯文字显示
:text {width=55;key="t_text-1";} //可变的文字对象2
}
spacer_1 ;//加空行--()
:text {width=55;key="t_text-2";} //可变的文字对象3
}
spacer_1 ;//加空行--()
:row{//其下为水平排列
ok_cancel;//确定和取消按钮
: button {//自定义一个按钮
key = "SM";//退出与确定的区别:确定为key = "accept";
label = "说 明";
fixed_width = true;//使按钮外框的宽度收缩到恰好可以容纳其内部的文字
alignment = centered;//使按钮居中放置
}
: button {//自定义一个按钮
key = "E_mail";//退出与确定的区别:确定为key = "accept";
label = "关 于";
fixed_width = true;//使按钮外框的宽度收缩到恰好可以容纳其内部的文字
alignment = centered;//使按钮居中放置
}
}
}
}
}
http://bbsfile.co188.com/forum/11/1191912159089.gif
好东西一定要顶啊 下来学习,谢谢楼主!
下来学习,谢谢楼主! 好东西一定要顶啊 钢构CAD是很不错的,支持! 好东西,我的同事很多在用 看了一下,受益匪浅! 非常值得的资料 不跟贴,对不住楼主呀
在学DCL,顶一下! 下来学习,谢谢楼主! 要是能有动画或截图演示就更好了。