santalin 发表于 2010-10-2 22:23:00

[原创] █ 直接将VBForm转DCL 程序【VB2DCL】【含截图及演示】█

本帖最后由 santalin 于 2011-11-15 12:31 编辑

VBForm 转 DCL 程序 VB2DCL
作 者: 安徽省水利水电勘测设计院 水工三处 LSD
程序功能:用VB的Form直接生成DCL对话框程序极其调用的LSP文件
能自动对DCL对话框中的参数进行读取和赋值,并输出
使用步骤:
一、在VB中绘制好表单Form
注意:排列的时候尽量一行的Top坐标相同,这样能保证在同一行
二、将生成的DCL及LSP文件拷贝CAD能读取到的目录下
三、在CAD里加载LSP文件,输入命令tt即可看到效果

另外:你对应的默认文件路径可以到 Support\vb2dcl_set.ini 更改

视频演示可以到我的网盘下载:
http://santalin.ys168.com/


生成的DCL和LISP程序都带有注释
一个简单程序,上传上来给大家交流一下,有什么BUG欢迎提出


由于编写时间很仓促,有什么需要改进的地方,
欢迎提出,我将根据大家意见改进后将推出新版

下面展示一下
程序界面截图:
http://bbs.mjtd.com/forum.php?mod=attachment&aid=NTM3NzF8MDY5MDdhNWZ8MTMyMTMzMTIyM3wyNjM2MjV8ODM2MzU%3D&noupdate=yes

Program Screenshots:

http://bbs.mjtd.com/forum.php?mod=attachment&aid=NTM3ODB8YzhkYzgwNDh8MTMyMTMzMTIyM3wyNjM2MjV8ODM2MzU%3D&noupdate=yes
VBForm 截图:
http://bbs.mjtd.com/forum.php?mod=attachment&aid=NTM3NDh8NmQ5NGUwZDZ8MTMyMTMzMTIyM3wyNjM2MjV8ODM2MzU%3D&noupdate=yes

生成的DCL对话框截图:

http://bbs.mjtd.com/forum.php?mod=attachment&aid=NTM3NDl8YmNkYWExMWF8MTMyMTMzMTIyM3wyNjM2MjV8ODM2MzU%3D&noupdate=yes
VB2DCL程序:


对于说害怕美化程序和解压支持文件这两个应用程序是病毒的朋友 ,直接下载未美化版本:


(声明:【程序界面美化】和【解压支持文件】绝不是病毒,只是加壳导致杀毒软件误报)

为满足外国朋友需求,特推出英文版(English Version):


演示视频截图:
http://bbs.mjtd.com/forum.php?mod=attachment&aid=NTM3NTV8ZWI4YmIzMGN8MTMyMTMzMTIyM3wyNjM2MjV8ODM2MzU%3D&noupdate=yes

VB2DCL程序使用的视频录像演示(带语音解说):
有1M多,不上传附件了,到我的网盘下载吧:
http://santalin.ys168.com/

好用的话就顶个帖支持一下啊

PS:在此感谢nonsmall的程序思路
感谢 mccad 的精华操作

这个程序的实现,关键就在于递归调用
下面是程序关键流程框图及伪代码(你可以根据这个框图写成任何语言的程序):
以下内容只有回复后才可以浏览

ccc230 发表于 2020-9-12 21:45:59

批量修改标注样式无法下载了
你的网盘打不了

火龙果2022 发表于 2024-8-3 20:37:55

谢谢分享,让我们携手共创论坛美好未来!

hhh454 发表于 2017-10-29 14:51:39

原来的文件没有了,我补上

santalin 发表于 2010-10-2 22:30:00

本帖最后由 santalin 于 2011-11-28 13:01 编辑

明经无法下载的TX可以到我的网盘下载:
http://santalin.ys168.com/
用这个程序开发的一个样品:


这里展出成果:
DCL文件:


Form1:dialog
{ // start Form1
label = "Form1";
key = "Form1";
:row
{ //start row
:boxed_column
{ // start frm_other
key = "frm_other";
label = "选择文件:";
width = 52.95;
fixed_height = true;
fixed_width = true;
:row
剩下的省略...

LISP文件:
(defun c:tt()
(setvar "cmdecho" 0)
(setq dcl_id (load_dialog "form1")) ;对话框加载
(if (not (new_dialog "Form1" dcl_id))
(progn (alert "不能装入对话框") (exit))
)
(lsd_Form1_getvar) ;从内存获取之前设定过的变量值
(action_tile "accept" "(lsd_Form1_setvar)") ;执行操作,给变量赋值
(action_tile "cancel" "(done_dialog)") ;取消对话框
(lsd_Form1_cmdAction) ;定义按钮动作
(start_dialog) ;启动对话框
(unload_dialog dcl_id) ;卸载对话框
(setvar "cmdecho" 1)
(princ)
)

剩下的省略...

需要看的话自己下载附件,用个VBForm测试一下就知道了
如果还不明白,到我的网盘
http://e.ys168.com/?santalin

里面有这个程序的视频演示,也不大,就1M多,看一下什么都清楚了


cnks 发表于 2010-10-2 22:31:00

支持一下,没有地方下载么?

santalin 发表于 2010-10-2 22:40:00

附件里有

gzxl 发表于 2010-10-2 23:10:00

<p>支持一下</p>

nonsmall 发表于 2010-10-2 23:33:00

<p>不错,是这个意思</p>

nonsmall 发表于 2010-10-2 23:35:00

本帖最后由 作者 于 2010-10-3 12:52:37 编辑 <br /><br /> <p>
<p><font face="Verdana">点下面的链接查看</font></p></p>
<p><font face="Verdana"><a href="http://bbs.mjtd.com/forum.php?mod=viewthread&tid=81777&amp;replyID=&amp;skin=0">可视化DCL编程思路</a></font></p>
<p><font face="Verdana"><a href="http://bbs.mjtd.com/forum.php?mod=viewthread&tid=76240&amp;replyID=&amp;skin=0">当初那个帖子</a></font><font face="Verdana"></p></font>

liminnet 发表于 2010-10-3 00:19:00

支持一楼做出如此好的可视化对话框制作程序。再次严重支持。最重要的是无私的共享。更重要的头一个有这种程序在明经上传共享!严重呼呼广大网友制作DCL对话框只用飞诗的和本贴一楼朋友的程序足矣。因为这两人的程序是目前最好和免费的。最后说一句,看来有人是坐不住啦!因为手里的支票已兑现不了现金了

liminnet 发表于 2010-10-3 00:30:00

赶快下载一个“菜鸟”级写的程序先。说不定一楼的贴到时又得罪了某些人的利益,被投诉,扣上一顶“不和谐”的帽子,贴子被删就没得下了,赶快了。。。

cnks 发表于 2010-10-3 01:04:00

<p>楼主开玩笑猫兄不必介意吧,另外源码放不放是猫兄的自由,呵呵,局外人胡乱评论,欢迎拍砖</p>
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: [原创] █ 直接将VBForm转DCL 程序【VB2DCL】【含截图及演示】█